iOS11及iPhone X适配总结

导航栏

  • 导航栏高度的变化
  1. iOS 11之前的导航栏默认高度为64pt(statusBar 20pt + NavigationBar 44pt),iOS 11之后如果设置了prefersLargeTitles = YES则为96pt,默认情况下还是64pt,
  2. iPhone X:iPhone X的statusBar由以前的20pt变成了44pt,所以iPhone X上的NavigationBar变为了88pt(statusBar 44pt + NavigationBar 44pt)
  • Largetitle
    iOS 11导航栏多了一个LargeTitleView,专门显示打字标题用的,整个导航栏的高度达到96(不包括状态栏高度,iPhone X之前20pt,iPhone X40pt)。如图:


    iPhone X之前的机型.png

    iPhone X机型.png
  • 导航栏图层的变化及对titleView布局的影响


    iOS 11之前的UINavigationBar的层级结构.png

    iOS 11之后的UINavigationBar的层级结构.png

    通过对iOS 11之前的UINavigationBar的层级结构和iOS 11之后的UINavigationBar的层级结构的分析可以看出:

  1. iOS 11之前导航栏的title是添加在UINavigationItemView上面,而navigationBarButton则直接添加在UINavigationBar上面,如果设置了titleView,则titleView也是直接添加在UINavigationBar上面。
  2. iOS 11之后,如果没有给titleView赋值,则titleView会直接添加在_UINavigationBarContentView上面,如果赋值了titleView,则会把titleView添加在_UITAMICAdaptorView上,而navigationBarButton被加在了_UIButtonBarStackView上,然后他们都被加在了_UINavigationBarContentView上,如图:
iOS 11之前和iOS 11之后titleView布局.jpg

_UITAMICAdaptorView -> _UINavigationBarContentView.png
TabBarController
  • 主要是tabBar高度及tabBarItem偏移适配,iPhone X犹豫底部安全区域的原因UITabBar高度由49pt变为了83pt。如图:


    iOS 11 TabBarController层次结构.53.png

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

推荐阅读更多精彩内容

  • 一、前言 iOS11发布也有一段时间了,每次版本升级,相关的适配工作当然是下个版本的核心工作之一。而且这次iOS1...
    景铭巴巴阅读 11,078评论 8 105
  • 导航栏 导航栏高度的变化 iOS11之前导航栏默认高度为64pt(这里高度指statusBar + Navigat...
    xukuangbo_阅读 1,100评论 0 3
  • 到P站一看,果然有一堆人画了斯雷因拿枪干掉伊奈帆的场景。
    lxt阅读 197评论 0 2
  • 正确的说是高优质高蛋白的肉类,原因在于不吃蛋白质人体基础代谢率下降,减肥容易越减越没有信心,身体也会变得不如从前。...
    翡翠蝴蝶阅读 427评论 0 0
  • 废话 在 WWDC 17 Session 206 中,介绍了这个 iOS 11 加入的新功能。尽管这个功能特别简单...
    Pikachuqiu阅读 2,748评论 0 5