我的应用程序有深色背景,但在 iOS 7 中,状态栏变得透明。所以我在那里什么都看不到,只有角落里的绿色电池指示灯。如何将状态栏文本颜色更改为白色,就像在主屏幕上一样?
在 .plist 文件中设置为UIViewControllerBasedStatusBarAppearance。YES
UIViewControllerBasedStatusBarAppearance
YES
在viewDidLoad做一个[self setNeedsStatusBarAppearanceUpdate];
viewDidLoad
[self setNeedsStatusBarAppearanceUpdate];
添加以下方法:
- (UIStatusBarStyle)preferredStatusBarStyle
{ return UIStatusBarStyleLightContent; }
注意 :这不适用于内部的控制器UINavigationController,
UINavigationController
Swift 3 - 这将在内部工作控制器UINavigationController。在您的控制器中添加此代码。
// Preferred status bar style lightContent to use on dark background. // Swift 3 override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }
Swift 5 和 SwiftUI
为 SwiftUI 创建一个新的 swift 文件,名为HostingController.swift
HostingController.swift
import Foundation import UIKit import SwiftUI class HostingController: UIHostingController<ContentView> { override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent } }
然后更改以下代码行SceneDelegate.swift
SceneDelegate.swift
window.rootViewController = UIHostingController(rootView: ContentView())
到
window.rootViewController = HostingController(rootView: ContentView())