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

时间:2016-03-27 14:24:22

标签: ios statusbar

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

3 个答案:

答案 0 :(得分:4)

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

但是,您可以在20px高度创建视图并将其放在状态栏后面。

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

我在github上找到了这个,你可以检查代码并找出如何更改前20px的颜色https://github.com/remirobert/RRMaterialNavigationBar

答案 1 :(得分:1)

正如他们所说,您可以使用所需的颜色生成20px视图。

首先,您需要隐藏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];

答案 2 :(得分:0)

一个解决方案包含appDidFinishLaunching中的这两行代码,在appDelegate中:

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

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