ios 9和iOS11 NavigationBar结构的差别

1.发现问题

最近在处理导航栏渐变的时候,不是自定义新的导航栏,隐藏原有的导航栏 
而是对原有的导航栏进行处理,发现以前的处理方式除了问题,同时网上下载的很多demo在iOS11中也有很多问题,整理了一天的时间也没有完全处理好,

  • 原因: 影响导航栏显示的原因就是导航栏有个毛玻璃效果的view,这个东西是导致直接修改导航栏滑动渐变出现bug的凶手.
  • 问题一: 直接修改UINavigationBar.barTintColor,在pop侧滑返回的时候,导航栏会闪一下,这是个bug
  • 问题二: 直接遍历UINavigationBar的子控件,去隐藏这个毛玻璃,iOS11处理成功了,但是真机iOS9却没有效果,问题如下

2.导航栏在不同系统上的差异

iOS9导航栏的结构 
这里写图片描述

iOS11导航栏的结构 
这里写图片描述

如果通过遍历隐藏毛玻璃view,修改其他view的背景色的时候,不同系统之间就不兼容了

github和cocoachina也下载了不少demo

github和cocoachina也下载了不少demo ,在iOS11上,push下一个控制器,在pop回来的时候,大部分都不正常了,要么是闪了一下,要么是pop后,导航栏不是透明的了,

忘牛人给予指导

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kuangdacaikuang/article/details/78292291

猜你喜欢

转载自blog.csdn.net/zhonglv_honeymoon/article/details/81287599
今日推荐