状态栏:—》
文字部分: 指的是显示电池,时间等
背景部分: 就是显示黑色或者图片的背景部分
1、文字:.default 黑色, .lightContent 白色
View controller-based status bar appearance控制App状态栏显隐接受全局配置(NO)或者各控制器各自配置(YES)。
第一种:Info.plist 全局配置
在 Info.plist 里增加一行 UIStatusBarStyle( Status bar style 也可以),这里可以设置两个值,就是上面提到那两个 UIStatusBarStyleDefault 和 UIStatusBarStyleLightContent
第二种:代码设置
全局:—》
—》在 Info.plist 文件中添加 View controller-based status bar appearance 设置为 NO (理论同上,必须添加且必须设置为 NO ,否则不生效)
—》在delegate里面设置 UIApplication.shared.statusBarStyle = .lightContent
局部:—》
—》在 Info.plist 文件中添加 View controller-based status bar appearance 设置为 YES (理论同上,必须添加且必须设置为 YES ,否则不生效)
—》在自定义的NavigationController里面重新这两个方法:(因为系统会默认调用Container的preferredStatusBarStyle方法,需要重写下面两个方法)
override var childViewControllerForStatusBarStyle: UIViewController? {
return self.topViewController
}
override var childViewControllerForStatusBarHidden: UIViewController? {
return self.topViewController
}
—》在需要隐藏的地方重写这个方法:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
2、背景颜色
—> 整个导航栏
// 这个方法是设置导航栏背景颜色,状态栏也会随之变色
self.navigationController?.navigationBar.barTintColor = UIColor.red
—-》状态栏处的颜色
let statusBarWindow: UIWindow = UIApplication.shared.value(forKey: "statusBarWindow") as! UIWindow
let statusBar: UIView = statusBarWindow.value(forKey: "statusBar") as! UIView
if statusBar.responds(to: #selector(getter: statusBar.backgroundColor)) {
statusBar.backgroundColor = UIColor.green
}
3、隐藏LunchScreen(欢迎页面)是的状态栏.
Status bar is initially hidden 设置为YES