ios7中UIViewControllerBasedStatusBarAppearance作用详解

所属分类: 软件编程 / IOS 阅读数: 1157
收藏 0 赞 0 分享

  ios7中UIViewControllerBasedStatusBarAppearance详解

在作iOS7的适配时,很多文章都会提到UIViewControllerBasedStatusBarAppearance。便一直不是太明白其实际作用,使用时发现UIViewControllerBasedStatusBarAppearance的实际作用如下:      

这个属性只影响如何设置status bar上字体的颜色是暗色(黑色)还是亮色(白色),对status bar的背景色无影响。status bar的背景色在iOS7上永远是透明的。

apple官方对UIViewControllerBasedStatusBarAppearance得说明:

UIViewControllerBasedStatusBarAppearance (Boolean - iOS) specifies whether the status bar appearance is based on the style preferred by the view controller that is currently under the status bar. When this key is not present or its value is set to YES, the view controller determines the status bar style. When the key is set to NO, view controllers (or the app) must each set the status bar style explicitly using the UIApplication object.

即:UIViewControllerBasedStatusBarAppearance(一个Boolean值)指定状态栏的外观是否是基于当前视图控制器给状态栏指定的首选风格。当这个键不存在,或者它的值设置为YES时(也就是说这个key的默认value为yes),视图控制器决定了状态栏的风格。当按键被设置为NO,视图控制器(或应用程序)都必须通过UIApplication对象(即UIApplication的setStatusBarStyle方法)显示的设置状态栏风格。

通过apple的官方文档不难看出,在ios7上,设置状态栏风格(暗色或者亮色)的方法无非就两种,第一种是在controller中通过回调方法preferredStatusBarStyle返回状态栏的风格,第二种是通过UIApplication对象的setStatusBarStyle设置, UIViewControllerBasedStatusBarAppearance实际上是指定了是否优先使用第一种方法(这也就不难理解为什么这个key值叫做UIViewControlle “based”)。

所以当plist中没有UIViewControllerBasedStatusBarAppearance这个key,或者存在这个key,并且value为YES时,
viewController的preferredStatusBarStyle方法对状态栏的设置生效;

当UIViewControllerBasedStatusBarAppearance对应的value为NO时,
[UIApplication sharedApplication] 通过方法setStatusBarStyle对状态栏的设置生效。

隐藏状态栏

有时候我们需要隐藏状态栏,那么此时我们在view controller中override方法prefersStatusBarHidden:即可,如下代码所示:

- (BOOL)prefersStatusBarHidden 
{ 
  return YES; 
} 

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多精彩内容其他人还在看

详细整理iOS中UITableView的性能优化

最近在微博上看到一个很好的开源项目,是关于如何优化UITableView的,加上正好最近也在优化项目中的类似朋友圈功能这块,思考了很多关于UITableView的优化技巧,所以决定详细的整理下对优化UITableView的理解,需要的朋友们可以参考借鉴。
收藏 0 赞 0 分享

IOS开发中禁止NavigationController的向右滑动返回

这篇文章主要介绍了IOS开发中禁止NavigationController的向右滑动返回的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

iOS实现微信/QQ显示最近拍摄图片的功能实例代码

如果你刚刚拍摄了图片,在使用微信/QQ发生消息时会显示“你可能要发送的图片”,这个功能非常人性化,怎么实现的呢?下面小编给大家分享iOS实现微信/QQ显示最近拍摄图片的功能实例代码,一起看看吧
收藏 0 赞 0 分享

iOS实现动态自适应标签

这篇文章主要为大家详细介绍了iOS动态自适应标签的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

iOS实现图片存在本地、再从本地获取图片的功能

本文主要介绍了iOS实现图片存在本地、再从本地获取图片的功能的代码。具有很好的参考价值。下面跟着小编一起来看下吧
收藏 0 赞 0 分享

iOS视频录制(或选择)压缩及上传功能(整理)

最新做的一个功能涉及到了视频的录制、压缩及上传功能,经过大神的一番教导,终于倒腾清楚了,今天小编把问题经过记录一下分享到脚本之家平台,供大家参考
收藏 0 赞 0 分享

iOS中打包上传常见的错误与解决办法

关于打包上传至AppStore,大家都认为是最后一步了,其实到了这里往往会遇到很多的坑。对于踩过的坑我不想再踩第二遍,所以在此将我遇到的所有奇葩问题在此做一个记录,当作对自己的一个提醒,同时也分享给给位,需要的朋友可以参考下。
收藏 0 赞 0 分享

解决Xcode 8构建版本iTunes Connect获取不到应用程序状态的办法

这篇文章主要介绍了关于解决Xcode 8构建版本iTunes Connect获取不到应用程序状态的办法,需要的朋友可以参考下
收藏 0 赞 0 分享

Objective-C实现身份证验证的方法示例

这篇文章主要给大家分享了Objective-C实现身份证验证的方法,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
收藏 0 赞 0 分享

ios启动页强制竖屏(进入App后允许横屏与竖屏)

最近工作遇到这样一个需要,当进入启动页需要强制竖屏,而进入APP后就允许横屏与竖屏,通过查找相关的资料找到了解决的方法,所以将实现的方法整理后分享出来,需要的朋友们可以参考借鉴,下面来一起看看吧。
收藏 0 赞 0 分享
查看更多