iOS 修改状态栏风格

2017-10-27  本文已影响0人  2700a4b1aed1

在iOS开发的过程中经常会遇到修改状态栏样式的情况,这是一个很小也很简单的知识点,但是也有一些需要注意的地方,下面会讲解我在开发的过程中是如何设置状态栏样式的.

1.什么是状态栏

什么是状态栏就不多做说明了,状态栏分为前景部分和背景部分.前景部分指的是显示电池,时间,信号这些.背景部分指的是显示黑色或者图片背景的部分

2.设置状态栏的前景和背景

在实际开发中设置状态栏风格无非有两种,第一,整个项目中使用同一种样式,第二,有部分界面展示不同的风格.

针对第一种情况直接在info.plist文件中加入以下代码就完事了,不多做解释,毕竟还是很简单

这里是设置为白色.

针对第二种情况我们通过代码来设置,要想代码设置生效,必须在plist里面设置了View controller-based status bar appearance为YES,没有设置时默认为YES.这个时候可以通过

- (UIStatusBarStyle)preferredStatusBarStyle方法来设置状态栏风格.

在这种情况下又可以分为两种情况.第一,没有导航控制器.第二,当前展示的控制器是导航控制器的根控制器.

第一种没有导航控制器的情况

直接在控制器中重写

- (UIStatusBarStyle)preferredStatusBarStyle方法就OK了

第二种情况

当前要设置的viewcontroller是导航控制器的根控制器的时候,系统默认将指定状态栏风格的权利交给了导航控制器,这时候要改变状态栏风格最好自定义导航控制器,在自定义的导航控制器中重写下列方法中的一个,都可以实现

- (UIStatusBarStyle)preferredStatusBarStyle

{

UIViewController*vc = self.topViewController;

return [vc preferredStatusBarStyle];

}

- (UIViewController *)childViewControllerForStatusBarStyle

{

return self.topViewController;

}

然后在当前控制器中实现

- (UIStatusBarStyle)preferredStatusBarStyle;方法即可

https://github.com/geekGetup/StatusStyleDemo 

是demo的链接地址.写的很乱,有错误的地方请大神指点.

上一篇下一篇

猜你喜欢

热点阅读