将状态栏设置为黑色

我想将status bar的颜色(显示时钟和电池的顶部的小条带)设置为带有白色文本的黑色背景。 我怎样才能做到这一点 ?

在此处输入图像描述

到目前为止我的方法:

我在info.plist添加了以下内容

 View controller-based status bar appearance --> NO 

并在viewController

 - (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleDefault; } 

但是,风格不会改变。 如何让状态栏变黑?

对于Xcode 8 / iOS 10 / Swift 3:

通过在状态栏下添加彩色UIView,在一个视图上临时更改状态栏背景颜色。 我将这些行放在viewWillAppear() 。 我的色调是白色的,透明度为45%,但您可以放入任何不透明或透明的UIColor值。

 let statusView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 20)) statusView.backgroundColor = UIColor.white.withAlphaComponent(0.45) self.view.addSubview(statusView) 

如果视图上有导航控制器,则可以将statusView添加到navigationController而不是视图。

您还可以传入UIScreen.main.bounds.size.width作为模拟状态栏背景视图的宽度。 不要硬编码宽度,否则它不适合所有设备。

或者,您也可以使用此代码更改整个应用中的状态栏背景。 请注意,即使放在viewWillAppear() ,而不是viewDidLoad() ,当您向前/向后导航时,其他视图仍将采用更改的状态栏。

 let statWindow = UIApplication.shared.value(forKey:"statusBarWindow") as! UIView let statusBar = statWindow.subviews[0] as UIView statusBar.backgroundColor = UIColor.white.withAlphaComponent(0.45) 

你可以通过调用使文本变白:

 UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true) 

状态栏具有透明背景。 没有办法改变这一点。 您可以将其下方的视图固定为背景。

你需要在Xcode-8.1和iOS 10中遵循3个步骤:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

最后我们可以得到理想的结果:

在此处输入图像描述

简易解决方案

转到主故事板(在应用程序启动时,在启动完成后加载的那个),并将顶级UIView的背景颜色更改为黑色。

如果您需要屏幕的其余部分具有另一个彩色背景,只需创建另一个UIView作为顶级视图的子视图,将其框架设置为从顶部布局指南下方开始,并将其颜色设置为您需要的任何颜色。

您仍然需要设置其他答案中提到的plist标志。

转到Plist文件

 a) Set the value "View controller-based status bar appearance" to NO b) Set the value "Status bar style" to UIStatusBarStyleLightContent - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(version) ([[[UIDevice currentDevice] systemVersion] compare:version 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]; } return YES; } 

它为我修复了状态栏颜色。 希望能帮助到你。

Interesting Posts