工作中会经常遇到需要修改状态栏显示的颜色,实践发现,修改其实很简单,只需要在项目的infoPlist文件中添加一项:View controller-based status bar appearance,添加后,它的默认值就是NO,表示由系统管理状态栏,此时在AppDelegate中添加如下代码:
[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;
这样就可以让状态栏中显示为亮色。
如果不想应用里所有的页面状态栏都是相同的颜色,可以将infoPlist中View controller-based status bar appearance设置为YES,这就表示将statusBar的控制权交给了各自的控制器,在需要修改状态栏的控制器viewDidLoad中写上[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;即可单独为本控制器修改状态栏。或者还有一种方式,iOS很贴心的在UIViewController也增加了几个接口,
目的是让状态栏根据当前显示的UIViewController来定制statusBar的前景部分。
- (UIStatusBarStyle)preferredStatusBarStyle;
- (UIViewController *)childViewControllerForStatusBarStyle;
- (void)setNeedsStatusBarAppearanceUpdate
只需要在控制器中实现preferredStatusBarStyle方法,直接返回需要的状态栏设置就可以了。
自http://blog.csdn.net/studying_ios/article/details/51792133