如何设置状态栏的背景颜色?

How can I set the background color of statusbar?

我想像 Facebook 应用程序 statusbar 一样设置 background 颜色,但我无法在 Apple 的文档中找到修复它的方法。对我有什么建议吗?

您无法更改状态栏颜色,因为它没有可更改的背景。

但是您可以创建一个高度为 20 像素的视图并将其放在状态栏后面。

如果您有一个 UINavigationBar,您可以删除 UINavigationBar 的背景颜色,或者向 UINavigationBar 添加一个高度为 20px 的子视图,并为其指定状态栏的颜色。

我在 github 上找到了这个,您可以检查代码并了解如何更改顶部 20 像素的颜色 https://github.com/remirobert/RRMaterialNavigationBar

一个解决方案是在appDelegate中的applicationDidFinishLaunching中这两行代码:

UIApplication.sharedApplication().keyWindow?.backgroundColor = UIColor.greenColor()
UINavigationBar.appearance().clipsToBounds = true

这基本上会更改您应用的所有视图控制器的状态栏背景颜色,您还必须将所有视图控制器的背景颜色设置为 clearColor()。

正如他们所说,您可以使用您想要的颜色生成 20 像素的视图。

首先,您需要隐藏 info.plist 中的状态栏: - 将基于视图控制器的状态栏外观设置为 NO

然后你可以在 AppDelegate 中用这样的东西设置新颜色:

UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 20)];
view.backgroundColor=[UIColor blackColor];
[self.window.rootViewController.view addSubview:view];