iOS11出来了,大家都忙着适配,资料的话网上也有很多,这里总结一下最近遇到的一些问题吧。
1.iOS 11 安全区域适配总结
iOS 11 安全区域适配总结这篇博客写的已经很详细了。在这里说一下笔者遇到的问题。当时是公司网络太慢,mac系统升级和xcode9升级花了两天才升级好。当时需要做适配,没有xcode9,无法直接调试。只能在xcode8下面写代码,通过jenkins
打包,安装到iOS11的机器上去。非常无奈...
// 这句代码适配ios11,在xcode8无法使用,
tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
//所以变为下面的
if ([tableView respondsToSelector:@selector(setContentInsetAdjustmentBehavior:)]) {
//在xcode8下进行适配
[tableView performSelector:@selector(setContentInsetAdjustmentBehavior:) withObject:@2];
}
2.系统版本判断,@available
关键字是在xcode 9出现在,在后面升级到xcode 9之后,我用了下面代码做判断,但是jenkins
无法打包(jenkins未升级
),所以只能换成其他方法判断了。
if (@available(iOS 11.0, *)) {
}
3.tableview滚动问题,笔者有遇到滚动的问题,滚动到对应的cell不准确,在iOS 11之前是没有问题的,iOS 11之后应该是由于开启了估算行高机制引起了bug。
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;