适配网上文章很多,我只是做个总结,方便查看。
iOS 11适配:
适配 iOS11 automaticallyAdjustsScrollViewInsets 弃用 和 tableView的HeaderView、FooterView上下边距过大
在didFinishLaunchingWithOptions中加入代码
if (@available(ios 11.0,*)) {
UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
UITableView.appearance.estimatedRowHeight = 0;
UITableView.appearance.estimatedSectionFooterHeight = 0;
UITableView.appearance.estimatedSectionHeaderHeight = 0;
}
还看到一种适配方案,我觉得更实际些,就是在有tableView的控制器中加入如下代码:
self.extendedLayoutIncludesOpaqueBars = YES;
if (@available(iOS 11.0, *)) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
self.automaticallyAdjustsScrollViewInsets = NO;
}
self.tableView.contentInset = UIEdgeInsetsMake(64, 0, 49, 0);
self.tableView.scrollIndicatorInsets = self.tableView.contentInset;
iPhone X
关于iPhone X 你之前的应用首次运行会出现上下黑边的情况
只需要准备一张iPhone X的启动页即可,尺寸为: 1125 × 2436,添加到项目Assets的LaunchImage中
注:LaunchImage中,直接添加可能没有iPhone X的尺寸框,网上是改动Contents.json,我是直接删了LaunchImage,又添加了一遍LaunchImage,就出来了iPhone X的尺寸框(xcode9自带)
后面我会持续更新...
相关参考
关于iOS 11 和 iPhone X 改动介绍:
https://www.lee1994.com/guan-yu-iphone/关于ScrollView新属性 contentInsetAdjustmentBehavior 代替 automaticallyAdjustsScrollViewInsets
http://www.jianshu.com/p/1601bd885f83