前言
本菜鸡最近在敲东西时,居然被小小的状态栏难住了半小时,所以怒写本博客
隐藏
-
全局隐藏
工程设置
- Status bar is initially hidden 是刚进入App时进入LunchScreen时的状态栏的设置
- View controller-based status bar appearance 是开始展示ViewController时的状态栏是否一致
- 代码隐藏
全局隐藏
将View controller-based status bar appearance设为NO
如果设置为YES则UIApplication.sharedApplication()就会无效
// OC
[UIApplication sharedApplication].statusBarHidden = YES;
// Swift
UIApplication.sharedApplication().statusBarHidden = true;
局部隐藏
override func prefersStatusBarHidden() -> Bool {
return true;
}
- (BOOL)prefersStatusBarHidden{
return YES;
}
局部隐藏的功能是进入页面后隐藏,如果没勾上Hide Status bar 在进入App时还是会有状态栏,出现页面时才会消失
字体样式
-
工程设置
现在只有两种状态,默认为黑色就不说了下面是状态栏字体白色设置
General Status Bar Style 设置成Light
会自动创建Plist条目,也可以自己手动创建
LightContent 白色字体
Default 黑色字体 代码设置
全局设置
将View controller-based status bar appearance设为NO(理论同上)
// OC
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
// Swift
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent;
局部设置
// Swift
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent;
}
// OC
- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
最后建议一下如果决定全工程完全隐藏就使用工程配置,如果局部隐藏就用代码不做工程设置,如果改来改去的话会容易发生不明错误...
另外一些navigationbar的风格设置也会影响到状态栏的样式,以下几篇博客中有写到
附上其他几篇写的不错状态栏的博客:
http://www.tuicool.com/articles/vIbMry
http://my.oschina.net/shede333/blog/304560