美文网首页
iOS11及iPhone X适配总结

iOS11及iPhone X适配总结

作者: SPIREJ | 来源:发表于2017-11-07 15:51 被阅读100次

    导航栏

    • 导航栏高度的变化
    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及iPhone X适配总结

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