iOS11 适配问题

上线前遇到iOS11各种适配问题,意识到之前代码写得不严谨,甚至基类里面也常常用系统的默认处理;另外,对一些属性半知半解,导致适配时,花了不少时间。不再絮言,下面是我遇到的iOS11部分适配问题。

1.有关tableview

a.不适配现象:section头尾视图有很大间隙、不同section区的row上面的字体重叠

解决方法:tableview的代理方法中设置sectionHeader、sectionFooter的高度,viewForFooterInSection、viewForHeaderInSection 返回一个简单的view即可。

原因:iOS11 tableview一些默认的代理方法 跟之前的差异,要求大家写代码更严谨了。


b.不适配现象:tableview会上移或者下移

解决方法:_tableView.estimatedRowHeight=0.0f;

_tableView.estimatedSectionFooterHeight=0.0f;

_tableView.estimatedSectionHeaderHeight=0.0f;

self.extendedLayoutIncludesOpaqueBars = YES;

if (@available(iOS 11.0, *)) {

self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

_tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);

_tableView.scrollIndicatorInsets = _tableView.contentInset;

}

原因:iOS11 self-sizing默认是开启的。estimated高度由iOS11 之前的0 变为UITableViewAutomaticDimension

2.window上层级问题

不适配现象:弹框不显示

解决方法:视图直接加window上面  [AppDelegate sharedAppDelegate].window

你可能感兴趣的:(iOS11 适配问题)