ios设置状态栏样式

Posted CH520 -- Cnblogs。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios设置状态栏样式相关的知识,希望对你有一定的参考价值。

1、第一种方式:

  • (1)在App生命周期里面设置

    • 设置状态栏字体为白色
    - [[UIApplication ? sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
    • 设置状态栏字体为黑色
    - [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
    • 当然直接设置是无效果的,需要在plist里面设置View controller-based status bar appearance 为No
    • 设置完后发现问题解决了。然而控制台会打印一行代码:Status bar could not find cached time string image. Rendering in-process,而且是定时打印,有没有很恶心,如果感觉没问题想省事的也可以不管,毕竟app没有崩溃,对于追求完美的人(貌似要得罪人)建议使用第二种方法。

2、第二种方式

  • (1)在试图控制器中重写- (UIStatusBarStyle)preferredStatusBarStyle方法。

    • 该方法返回是一个UIStatusBarStyle,只要重写该方法,当前视图控制器的状态栏颜色就会改变。
    • 记得plist里面设置View controller-based status bar appearance 为YES(这个是默认的设置,如果设置为No的话记得删掉或改为YES)。
    • 建议将这个方法封装在一个父基类里面,所有的控制器都继承这个父类就好了。
    - (UIStatusBarStyle)preferredStatusBarStyle {
        return UIStatusBarStyleLightContent;
    }

以上是关于ios设置状态栏样式的主要内容,如果未能解决你的问题,请参考以下文章

iOS 13 状态栏样式无效(childForStatusBarStyle 从未调用)

我们如何在 iOS 9 中为整个应用程序设置状态栏的 Light Content 样式?

iOS 15 中的状态栏样式不变

状态栏样式不会因单个视图而改变 - Swift 2/iOS9

如何在 iOS 7 启动期间更改状态栏样式

android 沉浸式状态栏(像ios那样的状态栏与应用统一颜色样式)