iOS7自定义statusbar和navigationbar的若干问题
当然有许多问题是这篇文章中没有提到的,按照文章的方法进行设置,你可能会遇到以下问题:
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官方标准适配方法
IOS7状态栏StatusBar官方标准适配方法 hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7. 如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变. ...
- IOS7状态栏StatusBar官方标准适配方法
IOS7状态栏StatusBar官方标准适配方法 hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7. 如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变. ...
- ios7 自定义UINavigationBar UIBarButtonItem 10px的偏移纠正
为UINavigationBar 写一个分类.UINavigationItem+correct_offset.h 转载 http://www.colabug.com/thread-1112420-1 ...
- IOS7学习之路九(ios7自定义UIAlertView)
IOS7的UIAlertView 不支持自定义,无法添加subview . 不过可以用第三方库git上的下载链接 https://github.com/wimagguc/ios-custom-a ...
- iOS7自定义back按钮和pop交互手势
Clambake for iPhone有一个回退按钮在所有的导航条上.这是一个简单的没有文字箭头. 实现一个自定义按钮是简单的.类似这个设置controller 的navigationItem一个le ...
- 系统去掉 Android 4.4.2 的StatusBar和NavigationBar
1. System Bar简单介绍 在Android4.0 (API Level 14)及更高版本号中.System Bar由Status Bar<位于顶部>和Navigation Bar ...
- IOS7 自定义UIBarButtonItem 的一些问题
ios 下自定义导航栏的BarButtonItem 会产生一些偏移问题, 解决方案: 通过新建一个系统的带固定距离的Item来调节你的Item #define IOS7_NAVI_SPACE ...
- ios7自定义返回按钮后,右滑返回功能失效解决方法
-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //开启ios右滑返回 if ([ ...
- 【转】系统去掉 Android 4.4.2 的StatusBar和NavigationBar
系统Hide Status Bar frameworks/base/core/res/res/values/dimens.xml 把 <dimen name="status_bar_ ...
随机推荐
- Centos系统备份与恢复教程
Linux不像windows,它不限制根用户存取任何东西,因此,你完全可以把一个分区上每一个的文件放入一个TAR文件中. 使用root用户切换到根目录 然后,使用下面的命令备份完整的系统: tar c ...
- Qt: 绘图基础(非常简洁明了,全面)
QPainter 能绘制: point, line, rectangle, ellipse, arc, chord, polygon, pie segment, Bezier curve, QPixm ...
- Microsoft SQL Server 2012 数据库安装图解教程
本文部分引用以下文章: SQL Server 2012 安装图解教程(附sql2012下载地址)_MsSql_脚本之家 http://www.jb51.net/article/36049.htm SQ ...
- How to Send an HTTP Header With Every Request With Spring RestTemplate
In Know Which Apps Are Hitting Your Web Service, I showed how to write a servlet filter that enforce ...
- Compiler options do not specify -mv64+, but configuration is for C64x+
2013-06-20 10:02:47 错误报告: "pin_connect_cfg.s62", ERROR! at line 365: [ ***** USER ERROR ...
- NFC(5)编写NFC程序的基本步骤
1,设置权限 <uses-permission android:name="android.permission.NFC" /> 2,限制Android版本 <u ...
- Task-based Asynchronous Pattern (TAP)
The Task-based Asynchronous Pattern (TAP) is based on the System.Threading.Tasks.Task and System.Thr ...
- mysql运算符的优先级
Operator precedences are shown in the following list, from highest precedence to the lowest. Operato ...
- Codeforces Round #306 (Div. 2)
A. Two Substrings You are given string s. Your task is to determine if the given string s contains t ...
- angularjs的事件 $broadcast and $emit and $on
angularjs的事件 $broadcast and $emit and $on <!DOCTYPE html> <html> <head> <meta c ...