【问题标题】:Status bar background color状态栏背景颜色
【发布时间】:2015-12-14 11:04:51
【问题描述】:

我试图让我的状态栏背景颜色与我的导航栏相同,我试图在谷歌中找到答案,但它对我来说不是很清楚......你能解释一下它是如何工作的吗?我修好了吗?

【问题讨论】:

  • 作为您帖子的附录,值得澄清的是,iOS 上的状态栏实际上没有颜色。相反,它是透明的,由您来确保您的视图在其后面放置有意义的颜色。在您的情况下,它是橙色的,但您可以(如果您选择)在状态栏后面的顶部添加一个白色框。我建议UINavigationController 更简单、更干净,但还有其他选择。

标签: ios swift uinavigationbar uistatusbar


【解决方案1】:

在我看来,您在上面有一个UINavigationBar,这就是导致顶部差距的原因。如果可以,请将视图控制器嵌入UINavigationController,然后在代码中设置导航项按钮。这会给您带来相同的效果,而且还会自动确保状态栏与其导航栏的外观相匹配。

【讨论】:

  • @AntonSergeyev:很高兴它成功了!不要忘记将我的答案标记为正确,以便其他人也可以受益。谢谢!
【解决方案2】:

转到您的应用 info.plist

1) 将基于视图控制器的状态栏外观设置为 NO 2) 设置状态栏样式为 UIStatusBarStyleLightContent

然后转到您的应用委托并将以下代码粘贴到您设置 Windows 的 RootViewController 的位置。

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

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

【讨论】: