如何更改状态栏文本颜色。附截图

iDi*_*lip 2 xcode uinavigationbar ios uistatusbar ios-statusbar

我想将状态栏文本颜色更改为客户颜色,如附加屏幕截图。

我已经用它来使它的内容变得轻巧 -

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)

但文字颜色没有改变。任何人都可以帮忙吗?

状态栏截图

Kru*_*nal 6

这是有关状态栏更改的Apple 指南/说明。状态栏中只允许深色和浅色(同时和黑色)。它不允许在状态栏中设置颜色(粉红色,如图所示)。

这是 - 如何更改状态栏样式:

如果你想设置状态栏样式,应用的水平,那么设置UIViewControllerBasedStatusBarAppearanceNO你的`的.plist”文件。

如果您想设置状态栏样式,请在视图控制器级别执行以下步骤:

  1. 设置UIViewControllerBasedStatusBarAppearanceYES.plist文件,如果需要设置状态栏样式仅UIViewController的水平。
  2. 在 viewDidLoad 添加函数 - setNeedsStatusBarAppearanceUpdate

  3. 覆盖视图控制器中的 preferredStatusBarStyle。

——

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}
Run Code Online (Sandbox Code Playgroud)

根据状态栏样式设置级别设置 .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
    }

}
Run Code Online (Sandbox Code Playgroud)



这是结果:

在此处输入图片说明