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

Swift: Setting StatusBar color on IOS13+ (Using statusBarManager)(SWIFT:在IOS13+上设置StatusBar颜色(使用statusBarManager))
本文介绍了SWIFT:在IOS13+上设置StatusBar颜色(使用statusBarManager)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过代码定义我的状态栏的颜色,就像我发现的那样,但它已被弃用。有人知道做这件事的新方法是什么吗?我的所有代码中都有此警告

此代码工作正常,但出现警告

任何人想要的代码:

class AppDelegate: UIResponder, UIApplicationDelegate {

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

推荐答案

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

因为statusBarManager是Get Only属性。勾选Here

open var statusBarStyle: UIStatusBarStyle { get }

您必须覆盖preferredStatusBarStyle

像这样

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

如果要将状态栏样式更改为所有视图控制器,可以在Info.plist中进行设置。

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

<key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>

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

<key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleLightContent</string>


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

<key>UIViewControllerBasedStatusBarAppearance</key>
    <true/>

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

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

这里有一篇关于How to set status bar style的好文章。

这篇关于SWIFT:在IOS13+上设置StatusBar颜色(使用statusBarManager)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Why local notification is not firing for UNCalendarNotificationTrigger(为什么没有为UNCalendarNotificationTrigger触发本地通知)
Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
Dropbox Files.download does not start when number of files in folder is gt; 1000(当文件夹中的文件数为1000时,Dropbox Files.Download不会启动)
Android + coreLibraryDesugaring: which Java 11 APIs can I expect to work?(Android+core LibraryDesugering:我可以期待哪些Java 11API能够工作?)
Get an event when UIBarButtonItem menu is displayed(显示UIBarButtonItem菜单时获取事件)
iOS: Send multiple actions to a bar button(IOS:向一个栏按钮发送多个动作)