动态更改状态栏文本颜色



我知道我可以改变iPhone状态栏文本的颜色,使用这里描述的方法。

但是,我的应用程序有不同的主题,我需要相应地更新状态栏。

调用

[self setNeedsStatusBarAppearanceUpdate];

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
}

显然不起作用。但是,它需要是本地的,就像只针对特定的TabBar视图一样。

首先,选择Project,在Genernal选项卡中,您将看到如下内容:

输入图片描述

Status Bar Style设置为Light,如图所示。

第二,在Info.plist中设置View controller-based status bar appearance equalNO。如果您找不到,只需添加一个新的行,并设置它像上面的步骤。

然后,运行你的应用程序,你会看到状态栏文本颜色是白色的。:)

只为那些来这里看标题的人。您可以设置一个标志,并在状态栏文本颜色之间切换,如代码段所示:

-(UIStatusBarStyle)preferredStatusBarStyle {
if (barStyleLight){
    return UIStatusBarStyleLightContent;
}
else {
    return UIStatusBarStyleDefault;
}

}

还需要注意的是,当我们调用[self setNeedsStatusBarAppearanceUpdate];

时,这个preferredStatusBarStyle方法将被调用。

希望能有所帮助。

最新更新