当我在屏幕上显示statusBar
时,我想隐藏view
。
func showView() {
if let keyWindow = UIApplication.shared.keyWindow{
let view = UIView(frame: keyWindow.frame)
view.backgroundColor = UIColor.black
keyWindow.addSubview(view)
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
view.frame = keyWindow.frame
}) { (completedAnimnation) in
//hide status bar when view is showed
UIApplication.shared.isStatusBarHidden = true
}
}
}
这是我显示视图的代码,我尝试使用UIApplication.shared.isStatusBarHidden = true
隐藏statusBar。并且UIApplication.shared.setStatusBarHidden(true, with: .fade)
,但这些都不起作用。也不能override prefersStatusBarHidden
,因为我在UIView
课上。
override var prefersStatusBarHidden: Bool {
return true
}
注意:请不要将其标记为重复项,因为我看过所有其他内容 答案,但没有一个起作用。我不想为所有应用程序隐藏,仅当它显示视图时。
答案 0 :(得分:1)
步骤1:在Info.plist文件中
单击加号按钮以添加新密钥View controller-based status bar appearance
将VALUE设置为NO
步骤2:用于隐藏在单个屏幕中
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
UIApplication.shared.isStatusBarHidden = true
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.isStatusBarHidden = false
}
步骤3:用于隐藏在整个应用中
AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
application.statusBarHidden = true
return true
}
答案 1 :(得分:0)
我的建议是创建一个变量:
var isVisible: Bool?
在所需的UIView出现时将其设置为true,在消失时将其设置为false。
或者,只需使用ViewController,然后从那里显示视图-