美文网首页ios11iOS-Developer-OCiOS
ios, iOS11适配,iphoneX适配

ios, iOS11适配,iphoneX适配

作者: pony23 | 来源:发表于2017-09-18 18:11 被阅读7334次

    一. iPhone X 适配

    1.iPhone X 屏幕上下有黑道,没有沾满全屏

    解决办法:LaunchImage 中添加一个和iPhone X相关的启动图片

                        图片尺寸:1125 * 2436

    Contents.json 中代码如下

    {

    "extent" :"full-screen",

    "idiom" :"iphone",

    "subtype" :"2436h",

    "filename" :"1125_2436.png",

    "minimum-system-version" :"11.0",

    "orientation" :"portrait",

    "scale" :"3x"}

    2.页面布局细节

    iPhone X 取消了 Home键,实现了高屏占比,所以默认 View 的区域是全屏幕

    屏幕四周有圆角、顶部有“刘海”、底部有手势区域

    注意:导航栏高度是 44 + 44

    Safe Area 如下图 (红色区域) -(复制来源http://blog.csdn.net/chenyblog/article/details/77987751)

    iOS11 以前,我们布局时,视图的 top 和 bottom 一般参照的是Top Layout Guide和Bottom Layout Guide

    iOS11 以后,那两个参照已经deprecated(过时)了,而被Safe Area取代。

    Safe Area要求最低支持iOS9.0    以此来解决下图问题

    二. iOS 11 适配

    1. tableview  出现现象,grouped类型,tableSectionheader/footer 的高度不受控制

    解决办法:先实现view for SectionHeader/footer,默认不实现view不会走高度的代理

    2.msaonry 布局例如:

    table.mas_makeConstraints { (make) -> Void in

    if #available(iOS 11.0, *) {

    _ = make?.edges.mas_equalTo()(self.view.safeAreaInsets) // 安全区域

    } else {

    // Fallback on earlier versions

    _ = make?.edges.mas_equalTo()(self.view)

    }

    }

    3.iOS 11中ViewController的automaticallyAdjustsScrollViewInsets属性被废弃了,导致了这页面出现了透明导航栏布局问题

    解决办法:

    if (@available(iOS 11.0, *)) {

    self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

    } else {

    self.automaticallyAdjustsScrollViewInsets = NO;

    }

    4. navigationtitle, 上有searchbar

    效果图:

    5.tableview  布局问题

    参考视频:https://developer.apple.com/videos/play/fall2017/201/

    https://developer.apple.com/videos/play/fall2017/801/

    未完待续。。。

    相关文章

      网友评论

      • 我本善良:总结很好,楼主这总结的参考是来自哪里,官方文档吗?:smile:
        pony23:@我本善良 官方视频
      • 梁森的简书:跳入的所有页面都该在底部为home键留出34Pt?
        pony23:@阳光黑 不用留也可以
      • 5d170d383dda:xib上约束如果改为安全区域,那对于ios11以前的,怎么解决呢。代码约束可以改,但是纯xib上约束呢
        iForrest:同样的问题,目前把每页的导航栏高度拉出来手动设置的
        5d170d383dda:@pony23 我最近也在弄适配,这一块,暂时也没找到更好的方法。:smiley:
        pony23:@Danke xib还没看,知道了回复你

      本文标题:ios, iOS11适配,iphoneX适配

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