微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 iOS 14、Swift 5 中将状态栏的颜色更改为除明暗以外的自定义颜色?

如何解决如何在 iOS 14、Swift 5 中将状态栏的颜色更改为除明暗以外的自定义颜色?

我想将状态栏的颜色(电池百分比、时间和 wifi 等)更改为 Apple 的 .lightContent.darkContent 以外的自定义颜色(红色、黄色、蓝色等)优惠。甚至有可能这样做吗?如果是,请帮我解决这个问题。我已经在 google 和 stackoverflow 上看到了答案,但他们只改变了 backgroundColor,主要是 keyWindow 的弃用。我正在使用 Swift 5 and iOS 14.4

解决方法

if #available(iOS 13.0,*) {
    let app = UIApplication.shared
    let statusBarHeight: CGFloat = app.statusBarFrame.size.height
    
    let statusbarView = UIView()
    statusbarView.backgroundColor = UIColor.red
    view.addSubview(statusbarView)
  
    statusbarView.translatesAutoresizingMaskIntoConstraints = false
    statusbarView.heightAnchor
        .constraint(equalToConstant: statusBarHeight).isActive = true
    statusbarView.widthAnchor
        .constraint(equalTo: view.widthAnchor,multiplier: 1.0).isActive = true
    statusbarView.topAnchor
        .constraint(equalTo: view.topAnchor).isActive = true
    statusbarView.centerXAnchor
        .constraint(equalTo: view.centerXAnchor).isActive = true
  
} else {
    let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView
    statusBar?.backgroundColor = UIColor.red
}

就是这样:) 不要忘记在 viewDidLoad 函数上使用它。 如果您使用的是 TabBarController,则此代码段应位于 viewWillAppear 函数上。这很重要!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。