美文网首页
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