iOS 8 - 设置状态栏颜色(当您的UINavigationBar具有nil背景图像时)

时间:2015-06-04 17:24:43

标签: ios uinavigationcontroller uinavigationbar statusbar

我在我的应用中使用了一个视图寻呼机(特别是ICViewPager)。要将View Pager混合到导航栏中,如下所示:

enter image description here

我必须将这些代码行放在AppDelegate.m

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

但是,这会导致状态栏与导航栏的颜色不同。

如何将状态栏的颜色设置为与导航栏相同?

3 个答案:

答案 0 :(得分:5)

  

如何将状态栏的颜色设置为与导航栏相同?

你不是。状态栏没有颜色。它是透明的。您的工作是将一些具有所需颜色的视图延伸到视图的顶部,状态栏后面,以便显示该颜色。

此视图可以是您的窗口,例如视图控制器的主视图。现在,它是白色的,所以我们看到白色显示在导航栏顶部的上方。如果你给你的窗口(或主要视图,或者我们看到的任何白色的东西)与导航栏的颜色相同,你将获得你想要的效果。

或者,您可以调整导航栏本身的大小和位置,使其到达窗口顶部并覆盖它。

答案 1 :(得分:1)

override func viewWillAppear(animated: Bool) {
    //Status bar style and visibility
    UIApplication.sharedApplication().statusBarStyle = .LightContent

    //Change status bar color
    let statusBar: UIView = UIApplication.sharedApplication().valueForKey("statusBar") as! UIView
    if statusBar.respondsToSelector(Selector("setBackgroundColor:")) {
        statusBar.backgroundColor = customRed
    }
}

你去吧

答案 2 :(得分:0)

您可以更改状态栏的样式

OPTIONS