iPhone X与iOS11适配

总有小伙伴什么资料都不查找翻看,就问我X的适配是怎么做的,每一次都表示深深的无力。。。。

简单总结了一下,因某项目简单,除了启动图外,实际上需要额外注意的只有两点:
1.safeAreaInsets问题
2.scrollView、tableView问题

在navigationController.navigationBar.prefersLargeTitles未开启的情况下,
iPhone X的状态栏高度为44,外加navBar高度44,合计88pt,而底部的安全区域高度为34pt.
而prefersLargeTitles开启时,safeAreaInsets的值为{140, 0, 34, 0}。
在现有iPhone机型中,X的高度特殊,所以我使用了屏幕高度来判断是否是X,也可以通过这篇文章中的方式来判断机型:
https://www.jianshu.com/p/02bba9419df8
某些宏定义,便于简便使用

#define HHTopbarTotalHeight ([[UIApplication sharedApplication] statusBarFrame].size.height+44)

#define HHSafeAreaBottomHeight ({CGFloat i; if(@available(iOS 11.0, *)) {i = HHKeyWindow.safeAreaInsets.bottom;} else {i = 0;} i;})

#define HHNormalAvaliableHeight (HHMainScreenHeight-HHSafeAreaBottomHeight-HHTopbarTotalHeight)

#define HHiPhoneX (HHMainScreenHeight == 812)
#define HHMainScreenWidth [UIScreen mainScreen].bounds.size.width
#define HHMainScreenHeight [UIScreen mainScreen].bounds.size.height
#define HHMainScreenBounds [UIScreen mainScreen].bound

这篇文章写的很详细哦:
https://www.jianshu.com/p/3a9ad4f0fa32
参考文章:
iPhone X 的 UI界面适配官方指南https://juejin.im/entry/59b938f86fb9a00a5c3c32df
关于iPhone X 的适配 http://m.blog.csdn.net/wujakf/article/details/78043586
iOS11 & iPhone X 适配指南

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,422评论 25 708
  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 11,230评论 12 197
  • 总题目24个,耗时35分钟,对13个,错11个。 每当单选和多选混合时,错误率就会特别大,仔细看了一下题,出现错误...
    灼灼2015阅读 174评论 0 0
  • 步骤 首先将Xocde安装上 在终端中输入 gcc -v 终端返回gcc版本则说明command line已经安装...
    SakuraMekhi阅读 1,679评论 0 51
  • 文/添一抹岚 前些天,无意中我跟简书上文友聊到兰州拉面。我说大爱它。文友问我,兰州拉面口味多辛辣,也爱?我回复他,...
    添一抹岚阅读 2,054评论 119 63