您无法更改状态栏的这些属性。您只能设置 .default、.lightContent。但是,如果您想要的话,可以在其下方放置一个视图,该视图不透明并具有背景颜色。像这样:
let statusBarFrame = UIApplication.shared.statusBarFrame
let statusBarView = UIView(frame: statusBarFrame)
self.view.addSubview(statusBarView)
statusBarView.backgroundColor = .green
可以放在您的ViewController
的viewDidLoad()
方法中。
Swift 5.1 iOS 13.0 如果当前的废弃不再使用,以防万一...
if #available(iOS 13.0, *) {
let window = UIApplication.shared.windows.filter {$0.isKeyWindow}.first
let statusBarFrame = window?.windowScene?.statusBarManager?.statusBarFrame
let statusBarView = UIView(frame: statusBarFrame!)
self.view.addSubview(statusBarView)
statusBarView.backgroundColor = .green
} else {
//Below iOS13
let statusBarFrame = UIApplication.shared.statusBarFrame
let statusBarView = UIView(frame: statusBarFrame)
self.view.addSubview(statusBarView)
statusBarView.backgroundColor = .green
}
view.clipsToBounds = true
我认为您无法调整状态栏的半透明属性。不过,您可以将其隐藏。请在您的ViewController中粘贴以下代码:
override var prefersStatusBarHidden: Bool {
return true
}
Info.plist
文件,看看您的状态栏外观是否基于ViewController。添加以下内容:<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>