美文网首页iOS Developer
iOS11系统下,界面布局错位BUG解决

iOS11系统下,界面布局错位BUG解决

作者: Anchoriter | 来源:发表于2017-08-11 11:56 被阅读295次

因为项目在iOS11系统下运行时发现tableview和collectionView出现内容自动向下偏移了20的高度,在查找问题的时候,发现了相关的新特性,从而解决了适配问题。

iOS11系统下添加了一些新特性,具体内容可仔细阅读这篇文章,本文涉及内容是UIScrollView and UITableView的新特性

这里只介绍怎么解决问题
新增的contentInsetAdjustmentBehavior属性用来配置adjustedContentInset的行为,该结构体有以下几种类型:

typedef NS_ENUM(NSInteger, UIScrollViewContentInsetAdjustmentBehavior) {  
    // 会自动计算和适应顶部和底部的内边距并且在scrollView 不可滚动时,也会设置内边距.
    UIScrollViewContentInsetAdjustmentAutomatic, 
    // 自动计算内边距
     UIScrollViewContentInsetAdjustmentScrollableAxes,
    // 不计算内边距
    UIScrollViewContentInsetAdjustmentNever,
    // 根据safeAreaInsets 计算内边距
    UIScrollViewContentInsetAdjustmentAlways,
}

显然,我们要使用UIScrollViewContentInsetAdjustmentNever
先要判断版本,避免不能识别代码,设置相关的UIScrollView的子类的contentInsetAdjustmentBehavior属性

最终答案就是下面这句代码

#ifdef __IPHONE_11_0
        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        self.collection.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
#endif

相关文章

网友评论

    本文标题:iOS11系统下,界面布局错位BUG解决

    本文链接:https://www.haomeiwen.com/subject/kiylrxtx.html