美文网首页
适配iOS11的坑

适配iOS11的坑

作者: 雷3雷 | 来源:发表于2018-09-13 18:51 被阅读20次

    1.自定义的navigationBar,那么在iOS11上运行就可能出现布局错乱的bug,解决办法是重写UINavigationBar的layoutSubviews方法,调整布局,上代码:

    2.继承自UIScrollView的视图偏移问题

    大家在iOS11设备上运行出现最多问题应该就是tableview莫名奇妙的偏移20pt或者64pt了。。原因是iOS11弃用了automaticallyAdjustsScrollViewInsets属性,取而代之的是UIScrollView新增了contentInsetAdjustmentBehavior属性,这一切的罪魁祸首都是新引入的safeArea

    3.还有的发现某些界面tableView的sectionHeader、sectionFooter高度与设置不符的问题,在iOS11中如果不实现-tableView: viewForHeaderInSection:和-tableView: viewForFooterInSection:,则-tableView: heightForHeaderInSection:和- tableView: heightForFooterInSection:不会被调用,导致它们都变成了默认高度,这是因为tableView在iOS11默认使用Self-Sizing,tableView的estimatedRowHeight、estimatedSectionHeaderHeight、estimatedSectionFooterHeight三个高度估算属性由默认的0变成了UITableViewAutomaticDimension,解决办法简单粗暴,就是在对应界面实现对应方法或把tableView的这三个属性设为0

    相册访问权限

    看其他适配文章上对iOS11相册权限调整的说明是“iOS11把NSPhotoLibraryUsageDescription替换成了NSPhotoLibraryAddUsageDescription”,奇怪的是我的项目并没有添加NSPhotoLibraryAddUsageDescription,在访问相册时也没发生crash,后来在仔细阅读了官方文档才发现NSPhotoLibraryAddUsageDescription只针对相册存储权限,在iOS11上系统默认打开了用户相册的访问权限,如果应用需要存储权限就需要添加这个key,否则就会crash。

    获取定位权限

    要把两种选择都给添加上还能使用 运行时 和一直使用

    相关文章

      网友评论

          本文标题:适配iOS11的坑

          本文链接:https://www.haomeiwen.com/subject/bdxvjftx.html