美文网首页
iOS改变状态栏颜色

iOS改变状态栏颜色

作者: Jux2020 | 来源:发表于2017-01-11 01:58 被阅读0次

    在默认情况下,APP的状态栏和进入后的启动页状态栏都是黑色,但由于业务需求有时会需要改变状态栏的颜色,在此总结一下比较常用的几种情况

    一、没有包装导航控制器

    • 所有页面皆为白色

    1.第一种方式

    在项目的** Info.plist **文件里增加一项 View controller-based status bar appearance = NO,如下图:

    其中的** Status bar style **项可在项目的General中设置,也可自己修改

    完成以上的修改后,项目的状态栏就变为了白色

    2.第二种方式

    在根控制器里添加如下代码(我这里以tabBarController为例):

    - (UIStatusBarStyle)preferredStatusBarStyle {
        return UIStatusBarStyleLightContent;
    }
    - (UIViewController *)childViewControllerForStatusBarStyle {
        return self.tabBarController;
    }
    

    所有tabBar的子控制器状态栏都变为了白色


    • 某个页面为白色

    在需要变白的控制器里添加如下代码:

    - (UIStatusBarStyle)preferredStatusBarStyle { 
          return UIStatusBarStyleLightContent;
    }
    

    </br>

    二、包装了导航控制器

    • 所有页面皆为白色

    如果也有tabBarController的话,上面的第二种方式同样适用。

    其他方式:

    a. 同没包装导航控制器的第一种方式一样,设置好下图中的两项即可。


    b. 同样需要设置好 View controller-based status bar appearance = NO ,然后在AppDelegate.m里输入[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;同样可以使状态栏变白。


    • 某个页面为白色

    在导航控制器.m文件中输入以下代码:

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

    然后在需要变白的控制器.m里去输入以下代码:

    - (UIStatusBarStyle)preferredStatusBarStyle { 
        return UIStatusBarStyleLightContent;
    }
    

    完成这两步操作后即可实现,效果如下:

    最后

    并非只有以上的方法才能实现状态栏变白的效果,此处只介绍了我自己在实际中用到的一些方法。

    相关文章

      网友评论

          本文标题:iOS改变状态栏颜色

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