06iOS11适配

1.UITableView:默认开启Self-Sizing
我们不需要自己去计算 cell 的高度, ,只要设置好两个属性, 约束好布局, 系统会自动计算好 cell 的高度
在 iOS 11之前, estimatedRowHeight默认为0, self.sizing 打开后, contentSize 和contentOffset都可能改变, 可以通过以下方式禁止

self.tableView.estimatedRowHeight = 0; 
self.tableView.estimatedSectionHeaderHeight = 0; 
self.tableView.estimatedSectionFooterHeight = 0;

2.NSLocationAlwaysAndWhenInUseUsageDeion
在IOS11,原有的NSLocationAlwaysUsageDeion被降级为NSLocationWhenInUseUsageDeion。因此,在原来项目中使用requestAlwaysAuthorization获取定位权限,而未在plist文件中配置NSLocationAlwaysAndWhenInUseUsageDeion,系统框不会弹出。建议新旧key值都在plist里配置,反正我试下来是没有问题,唯一的区别是使用requestAlwaysAuthorization获取权限 IOS11系统弹框会把几种权限级别全部列出,供用户选择,显然更人性化了哈~~

获取位置权限.png

3.Navigation Bar

navigation bar 的titleView支持了 layout

titleView对应的View大小和预期不一致。
titleView对应的View有点击事件会无法触发

解决方法是直接重写titleView对应View的intrinsicContentSize方法

  • (CGSize)intrinsicContentSize {
    return UILayoutFittingExpandedSize;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容