iOS开发中iOS11下UITableView没有发生偏移

项目中发现一个问题

在有navigationBar(系统的)的情况下,设置UITableView距离VC的view顶部为0,在iOS11系统上发生了(状态栏高度+navigationBar高度)偏移,在iOS11以下的系统上没有发生偏移。

解决方法

后来设置了navigationBar的translucent属性为NO,UITableView即可发生偏移。

个人之前项目

都是使用自定义navigationBar,从不会出现这种偏移问题。

2019.3.11补充:
如果在当前VC上添加的第一个子视图是UITableView或UICollectionView那么系统的一些默认设置会让其发生偏移,不论是在iOS11以下的系统还是iOS11及其以上的系统。但是如果当前VC上先添加一个普通的UIView子视图,再添加UITableView或UICollectionView那么在iOS11以下的系统不会发生偏移而在iOS11及其以上的系统会发生偏移。(注意:UITableView作为子视图被添加的顺序)


iOS开发中iOS11下UITableView没有发生偏移_第1张图片
0.不偏移.png

iOS开发中iOS11下UITableView没有发生偏移_第2张图片
0.偏移.png

系统默认设置代码

   /// 系统默认设置
if (@available(iOS 11.0, *)) {
    self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentAutomatic;
} else {
    self.automaticallyAdjustsScrollViewInsets = YES;
}

****本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。***

你可能感兴趣的:(iOS开发中iOS11下UITableView没有发生偏移)