如何在iOS 7上更改状态栏背景颜色?

时间:2013-10-02 08:17:28

标签: ios7 statusbar

我目前的应用程序在iOS 4.2,5和6上运行。

导航栏呈橙色,状态栏呈黑色背景色。但是,当我在iOS 7上运行相同的应用程序时,我发现状态栏看起来是透明的,与导航栏的橙色背景颜色相同。

由于这个原因,我无法区分状态栏和导航栏。 如何使状态栏看起来与iOS 5和6中的状态相同,即黑色背景颜色和白色文本颜色?我该如何以编程方式执行此操作?

我在谷歌搜索了这个,并发现了一个建议,我要添加一个黑色背景,大约20像素高视图重叠状态栏,以提供黑色背景视图。我尝试了但是没有成功。

有人可以提供代码来执行此操作吗?

1 个答案:

答案 0 :(得分:0)

尝试在application:didFinishLaunchingWithOptions中调用以下函数 对我有用

func setStatusBarBackgroundColor(color: UIColor) {

guard  let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView else {
    return
}

statusBar.backgroundColor = color
}

迅速

如果在目标C中工作,请尝试以下操作:

- (void)setStatusBarBackgroundColor:(UIColor *)color {

UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
    statusBar.backgroundColor = color;
}
}

正如许多年前发布的问题一样,希望它对其他人有帮助。 :)