使用UISearchController时 navigationBar translucent 属性导致的问题总结

上次我帮朋友写了个通讯录的Demo,他参考我的Demo放入工程,运行后效果一直不对。这里有两个问题,第二个问题我是昨晚拉取他工程代码Check才发现,现在贴出问题所在,有类似问题的可以参考。

translucent 属性的坑

1. 点击 searchBarsearchBar移到屏幕顶部外面

navigationBartranslucent设置为NO时会造成点击 searchBarsearchBar移到屏幕顶部外面。 这里我认为是因为translucent使原点坐标改变造成的,暂时没有找到很好的解决办法,所以如果想要这种动态效果只能设为YES

`translucent`设置为`NO`时

2. navigationBar完全透明

navigationBar完全透明,这个我开始只看他通讯录模块,并从他通讯录模块的NavigationController开始检查,没发现问题所在。然后我对比了他其他模块的navigationBar,其他模块完全没问题。重新想了下问题,感觉也许是他其他地方调用修改了所有navigationBar的方法,例如appearance。然后全局搜索,果然是他在登录模块中调用了appearance方法,是为了去掉navigationBar下面的线条。修改为只修改当前navigationBar后问题解决了。例如

 [[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
 [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
 self.navigationBar.translucent = NO;

修改为

 [self.navigationBar setBackgroundImage:[[UIImage alloc]init] forBarMetrics:UIBarMetricsDefault];
 [self.navigationBar setShadowImage:[[UIImage alloc]init]];
 self.navigationBar.translucent = NO;
`navigationBar`完全透明

translucent 属性使用技巧

  • 去掉navigationBar下面的线条navigationBar不透明。
  [[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
  [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
  self.navigationBar.translucent = NO;
  • 去掉navigationBar下面的线条navigationBar透明
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
self.navigationBar.translucent = YES;
  • 修改navigationBar下面的线条颜色
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • App 中会经常需要在透明与不透明 NavigationBar 的页面相互切换。有些时候在透明 Navigatio...
    xuyafei86阅读 22,020评论 43 111
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,241评论 4 61
  • 我敢保证,总统现在肯定睡的很不踏实,那件事会一直记挂在他心里头,不仅让他堵得慌,还让他无法想明白。 其实,现在不光...
    芝麻斋主人阅读 374评论 8 13
  • 作为一个小宝宝的母亲 我并不称职,下午出去帮宝宝买了水彩笔 到家他很开心,晚饭后就开始摆弄起来 于是就吃了一...
    徐晟嘉阅读 151评论 0 0
  • 国庆忙里偷闲、去室友家的小镇。仅待了两天、我不敢言小镇民风如何、但我确实喜欢远离一线城市的边陲小镇。我喜欢这里慢节...
    暮色缓缓阅读 417评论 0 1