Swift:在 IOS13+ 上设置 StatusBar 颜色(使用 statusBarManager)

Gui*_*eis 5 colors statusbar swift

我想通过代码定义状态栏的颜色,我发现它是这样的,但它已被弃用。有谁知道这样做的新方法是什么?这个警告在我的所有代码中都跟着我

在此输入图像描述

这段代码可以工作,但有警告

任何想要的人的代码:

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
        return true
    }
Run Code Online (Sandbox Code Playgroud)

Raj*_*han 7

通过使用UIStatusBarManager警告中提到的内容,您也无法设置样式。

因为statusBarManager是唯一获得的财产。检查这里

open var statusBarStyle: UIStatusBarStyle { get }
Run Code Online (Sandbox Code Playgroud)

你必须覆盖preferredStatusBarStyle

像这样

class ViewController: UIViewController {
    
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}

Run Code Online (Sandbox Code Playgroud)

如果您想更改所有视图控制器的状态栏样式,您可以在Info.plist.

第1步:添加View controller-based status bar appearance键并设置No

<key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>
Run Code Online (Sandbox Code Playgroud)

第2步:添加Status bar style键并设置样式,例如Light Content

<key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleLightContent</string>
Run Code Online (Sandbox Code Playgroud)

如果您想要基于控制器的不同样式,则第 1 步:添加View controller-based status bar appearance键并设置Yes

<key>UIViewControllerBasedStatusBarAppearance</key>
    <true/>
Run Code Online (Sandbox Code Playgroud)

preferredStatusBarStyle第 2 步:在视图控制器内覆盖。

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

这是一篇关于如何设置状态栏样式的好文章。