美文网首页
iOS 修改状态栏风格

iOS 修改状态栏风格

作者: 2700a4b1aed1 | 来源:发表于2017-10-27 16:34 被阅读0次

    在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的链接地址.写的很乱,有错误的地方请大神指点.

    相关文章

      网友评论

          本文标题:iOS 修改状态栏风格

          本文链接:https://www.haomeiwen.com/subject/qilauxtx.html