1.发现问题

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

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

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

iOS9导航栏的结构
ios 9和iOS11 NavigationBar结构的差别

iOS11导航栏的结构
ios 9和iOS11 NavigationBar结构的差别

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

github和cocoachina也下载了不少demo

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

忘牛人给予指导

相关文章:

  • 2022-12-23
  • 2022-01-10
  • 2022-12-23
  • 2022-12-23
  • 2021-10-07
  • 2022-12-23
  • 2022-12-23
  • 2021-07-18
猜你喜欢
  • 2021-10-04
  • 2021-10-10
  • 2021-07-25
  • 2021-06-09
  • 2022-02-17
  • 2021-10-20
相关资源
相似解决方案