iOS7自定义statusbar和navigationbar的若干问题
来源:互联网 发布:淘宝怎么上一千零一夜 编辑:程序博客网 时间:2024/05/16 19:38
转自:http://www.th7.cn/Program/IOS/201409/283576.shtml
如有侵犯,请来信oiken@qq.com
当然有许多问题是这篇文章中没有提到的,按照文章的方法进行设置,你可能会遇到以下问题:1.navigationbar的背景图片自定义以后,statusbar虽然和navigationbar共用了背景图,但是其还是透明的,颜色会比navigationbar淡许多,导致最终效果很难看,那么如何修复这个问题呢?很简单调用以下方法:
self.navigationController.navigationBar.translucent = NO;
此时navigationbar和statusbar就融为一体了,实现了类似evennote的那种效果。我曾经试图通过设置:
self.extendedLayoutIncludesOpaqueBars = YES;
来修复这个问题,我之所以会想到这个办法是因为通过设置controller的view的背景色我发现,statusbar下面似乎没有被背景色填充,事实却证明此方法行不通。
2.自定义navigationbar的背景图以后pop一个controller播放动画时,statusbar和navigationbar所在的位置会显示navigationcontroller的背景色,因为默认是黑色的,如果你的controller的背景色不是黑色的就会非常难看。那么解决这个问题的关键就是将:
self.extendedLayoutIncludesOpaqueBars = YES
因为默认是NO。我建议在你自定义navigationbar之后始终将它设置为NO,这样既能解决上述所述的问题,也能方便你在xib或者storyboard中的布局,如果使用默认值你会发现,在你自定义navigationbar的样式之后xib或者storyboard中的试图统统向下挪动了64,非常的蛋疼。
3.关于preferredStatusBarStyle不执行的问题。
这个方法不执行,害的我花了一天的时间去解决,各个无果之后求助了stackoverfollow的大神在线帮助,一夜纠结之后有大神回复了这个问题,那就是因为没有给UIApplication设置rootViewController。我现在的工作属于二次开发,项目没有使用系统apple提供的导航控制器,自定义的导航控制也不从系统的继承而来,导致没有设置rootViewController,虽然控制台有警告信息,但是项目能够正常运行,所以一直没有注意这个问题,最终导致了preferredStatusBarStyle无法执行。虽然具体原因只有看过UIApplication的源代码才会清楚,但是我们看不到。所以遵循开发规则很重要,对每个一个黄色警告和控制台输出的警告信息一定要注意修复。说不定以后就会中招。
- iOS7自定义statusbar和navigationbar的若干问题
- iOS7的statusBar和navigationBar
- iOS7的statusBar和navigationBar
- iOS7的statusBar和navigationBar
- ios7下设置navigationbar和statusbar
- iOS7 自定义statusBar的颜色
- Android4.0的StatusBar和NavigationBar
- Android4.0的StatusBar和NavigationBar
- ios 实现自定义状态栏StatusBar 和 导航栏navigationBar 的状态和颜色背景图片
- ios 实现自定义状态栏StatusBar 和 导航栏navigationBar 的状态和颜色
- [iOS]隐藏NavigationBar和StatusBar
- android StatusBar和NavigationBar分析
- 如何屏蔽StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
- ARM 关键几个寄存器
- (一)程序设计的基本知识
- Activity 生命周期
- TDD相关测试框架
- iOS7的statusBar和navigationBar
- iOS7自定义statusbar和navigationbar的若干问题
- C++ string大小写转换
- (二)对象和类型
- "=="和"equal"的区别
- Laravel+apache 报 404
- sql server 2005 32位+64位、企业版+标准版、CD+DVD 下载地址大全
- LeetCode 题解(263) : Find the Celebrity
- win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程
- Ember.js 入门指南——组件定义