昨天手欠更新到Xcode9,顺便把手机也升级到IOS11,更新才发现还是以前的好,心累啊。开始各种适配,这里只备注一下自己适配过程中遇到的问题以及解决办法
1.关于tableview的contentInset
问题,这个是在使用MJRefesh过程中发现的,后来网上查了一下,原来IOS11废弃了automaticallyAdjustsScrollViewInsets
这个属性,新增了一个contentInsetAdjustmentBehavior
来代替他,那么我们在做的时候需要加一个判断:
if (@available(iOS 11.0, *)) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
self.tableView.contentInset = UIEdgeInsetsMake(64, 0, 0, 0);
self.tableView.scrollIndicatorInsets = self.tableView.contentInset;
} else {
self.tableView.contentInset = UIEdgeInsetsMake(5, 0, 0, 0);
}
这个建议写在基类里面或者定义一个宏.不然要写的地方很多。
2.关于检测是否开启定位
的判断.在iOS11
之前,一直都是使用kCLAuthorizationStatusAuthorizedAlways
来进行检测是否开启定位服务。
if ([CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedAlways)
但是到了IOS11 苹果禁止了always
这个枚举值,但是并没有废弃,这就尴尬了,所以换了另一个枚举值
if ([CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedWhenInUse)
,这样就可以检测了.
未完待续!!!