iOS开发之顶部状态栏statusBar颜色变化小结

iOS开发之顶部状态栏statusBar颜色变化小结

1.单个视图View没有导航控制器包装的情况下

(1.只设置启动状态栏颜色改变(白色),而视图中状态栏不变化(默认黑色),做如下的设置即可,两种方式不管先设置哪一个,另一个都会相应的变化

a. General 中的 Status Bar Style   -->  Light

b. plist 中增加 Status Bar Style   -->  UIStatusBarStyleLightContent

(2).设置启动状态栏颜色改变(白色),视图中的状态栏也变成白色(保持上面的设置),有两种设置方式:

a. 在Info.plist里面添加一行View controller-based status bar appearance = NO 即可

b.在视图控制器中添加代码

  - (UIStatusBarStyle)preferredStatusBarStyle {

    return UIStatusBarStyleLightContent;
  }

(3).设置视图中状态栏的颜色为白色,启动程序时的状态栏为默认颜色(黑色),没有做1.中的任何设置情况下,在控制器.m文件中添加如下代码(即2.->b.)

2.视图作为导航控制器的根控制器的情况下

(1) .设置启动画面的状态栏为白色,视图中的状态栏为默认(黑色),如1.->1.中的设置即可,

(2) .设置启动画面和视图中的状态栏颜色都为白色(保持2.->1.中的设置),方式同样有两种:

a.在Info.plist里面添加一行View controller-based status bar appearance = NO 即可


b.此时如果单单在视图控制器.m文件中添加如下代码是不够的,

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}
同时需要在导航控制器.m文件中添加下面的代码才能达到效果(careful)

- (UIViewController *)childViewControllerForStatusBarStyle{
    return self.topViewController;
}

(3).只设置视图控制器状态栏颜色为白色,启动画面的状态栏为默认(黑色),把Info.plist文件中的 Status bar style = UIStatusBarStyleLightContent设置去掉,保持2.->2.->b.中的代码设置即可