IOS开发—禁止视图控制器自动调整status bar的风格

    今天项目中的一个问题是当点击第三方库提供的按钮时,由于动画的效果使得status bar字体颜色会自动的变成黑色,但是status bar的背景为黑色,所以看起来就像是status bar消失了一样,但是按钮是第三方库中的内容,无法修改,这里我想到的是禁止status bar中的字体颜色自动改变。具体实现如下:

1、在项目的.plist文件中添加新的key:UIViewControllerBasedStatusBarAppearance

2、设置此key的value为NO

3、在didFinishLaunchingWithOptions: 方法中添加下面一行代码:

application.statusBarStyle = UIStatusBarStyleLightContent;
这样,status bar就会一直是白色状态。

这是一种方法,其实还有另外一种方式可以解决这个问题,在apple官方的TransitionGuide.pdf文件中已经详细的说明了:

技术分享

第一种方法就如第一段所说:

    动态改变系统状态栏的一个好方法是重写 preferredStatusBarStyle 方法,用一个动画模块来更新状态栏外观,并调用 setNeedsStatusBarAppearanceUpdate 方法。 

第二种方法即为我用的,也即是Note中所说的内容:

    不让视图控制器自动的调整status bar的风格,需要在Info.plist文件中添加UIViewControllerBasedStatusBarAppearance的key,并且将其value设置成为NO,然后调用UIApplicationstatusBarStyle方法设置其风格即可。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。