如何用程序设置AppDelegate中所有视图控制器的状态栏背景颜色



是否有一种方法可以在AppDelegate文件中以编程方式设置状态栏背景颜色,以便将此背景颜色应用于给定应用程序中的所有视图控制器?

我从另一个Stack Overflow线程中找到了下面的解决方案,但问题是,这些代码需要应用于应用程序中的每个视图控制器,我认为这不是一个可持续的解决方案。谢谢

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
}

在这种情况下,您可以为每个视图控制器使用具有上述属性的containerView,并嵌入您的UIView。它将被定义和配置一次。

最新更新