【发布时间】:2015-09-25 21:34:04
【问题描述】:
我在 XCode 中遇到了一些问题。我试图让我的导航栏颜色完美,但是状态栏也不会改变它的颜色。我已经搜索过了,但没有什么适合我。
我希望不用代码也能做到这一点。
【问题讨论】:
我在 XCode 中遇到了一些问题。我试图让我的导航栏颜色完美,但是状态栏也不会改变它的颜色。我已经搜索过了,但没有什么适合我。
我希望不用代码也能做到这一点。
【问题讨论】:
这是我的看法:
首先,iOS 只提供了两种状态栏外观——浅色或默认。
还需要注意的是,系统状态栏不再
有任何背景颜色。当 API 引用
UIStatusBarStyleLightContent,它们的意思是清晰的白色文本
背景。 UIStatusBarStyleDefault 是清晰的黑色文本
背景。
将整个应用程序的状态栏设置为白色:
UIApplication.sharedApplication().statusBarStyle = .LightContent
在整个应用程序中将状态栏设置为黑色:
UIApplication.sharedApplication().statusBarStyle = .default
第二,附带说明,在您的info.plist 中,如果您想在应用程序级别设置上述样式(在您的AppDelegate )。否则将此属性设置为YES 并在每个视图控制器中实现以下方法以根据您的需要设置不同的样式:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
第三,要在状态栏上自定义颜色,您可以在状态栏下方添加所需颜色的UIView,如下所示:
UIView *addStatusBar = [[UIView alloc] init];
addStatusBar.frame = CGRectMake(0, 0, screenWidth, 20);
addStatusBar.backgroundColor = [UIColor grayColor]]; //assign here your color
[self.window.rootViewController.view addSubview:addStatusBar];
第四,重要的是,UINavigationController 将根据以下几点将其UINavigationBar 的高度更改为 44 点或 64 点:
【讨论】: