今天项目中的一个问题是当点击第三方库提供的按钮时,由于动画的效果使得status bar
字体颜色会自动的变成黑色,但是status bar
的背景为黑色,所以看起来就像是status bar
消失了一样,但是按钮是第三方库中的内容,无法修改,这里我想到的是禁止status bar
中的字体颜色自动改变。具体实现如下:
- 在项目的.plist文件中添加新的key:
UIViewControllerBasedStatusBarAppearance
- 设置此
key
的value
为NO
- 在
didFinishLaunchingWithOptions
: 方法中添加下面一行代码:
application.statusBarStyle = UIStatusBarStyleLightContent;
这样,status bar
就会一直是白色状态。
这是一种方法,其实还有另外一种方式可以解决这个问题,在apple官方的TransitionGuide.pdf
文件中已经详细的说明了:
第一种方法就如第一段所说:
动态改变系统状态栏的一个好方法是重写 preferredStatusBarStyle
方法,用一个动画模块来更新状态栏外观,并调用 setNeedsStatusBarAppearanceUpdate
方法。
第二种方法即为我用的,也即是Note中所说的内容:
不让视图控制器自动的调整status bar
的风格,需要在Info.plist
文件中添加UIViewControllerBasedStatusBarAppearance
的key
,并且将其value
设置成为NO
,然后调用UIApplicationstatusBarStyle
方法设置其风格即可。