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