这是有关状态栏更改的Apple准则/说明。
这是-如何更改状态栏样式:
如果要设置状态栏样式,请在“ .plist”文件中将应用程序级别设置UIViewControllerBasedStatusBarAppearance
为NO
。
如果要设置状态栏样式,请在视图控制器级别执行以下步骤:
- 设置
UIViewControllerBasedStatusBarAppearance
到YES
中.plist
文件,如果需要设置状态栏样式仅UIViewController的水平。
在viewDidLoad中添加功能- setNeedsStatusBarAppearanceUpdate
在视图控制器中重写preferredStatusBarStyle。
--
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
根据状态栏样式设置级别设置.plist的值。
您可以在应用程序启动或视图控制器的viewDidLoad期间为状态栏设置背景颜色。
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
return true
}
}
or
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
}
}
结果如下: