设置后navigationBarHidden=YES
,statusBar
就变成了transparent
。
唯一的方法是设置 statusBar backgroundcolor=white?
(实际上它可以工作......)
设置后navigationBarHidden=YES
,statusBar
就变成了transparent
。
唯一的方法是设置 statusBar backgroundcolor=white?
(实际上它可以工作......)
您可以使用以下技巧:
func setStatusBarColor() {
if #available(iOS 13, *)
{
let keyWindow = UIApplication.shared.connectedScenes
.filter({$0.activationState == .foregroundActive})
.compactMap({$0 as? UIWindowScene})
.first?.windows
.filter({$0.isKeyWindow}).first
let statusBar = UIView(frame: (keyWindow?.windowScene?.statusBarManager?.statusBarFrame) ?? CGRect(x: 0, y: 0, width: screenWidth, height: statubarHeight))
statusBar.backgroundColor = .white //your color
keyWindow?.addSubview(statusBar)
} else {
let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) {
statusBar.backgroundColor = .white //your color
}
UIApplication.shared.statusBarStyle = .lightContent
}
}
你也可以使用:
yourController.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true