![](/img/trans.png)
[英]How to hide the status bar with its content on iOS 10 with Swift 3?
[英]Hide status bar on button tap Swift 3 / iOS 10
按下按钮后,似乎无法在根视图控制器(A)中隐藏状态栏。
我已在info.plist中设置属性, Status bar is initially hidden
处于Status bar is initially hidden
而View controller-based status bar appearance
为YES
。
如果我实现override var prefersStatusBarHidden: Bool { get }
,状态栏将被明确隐藏(或不隐藏)。
我需要的
我希望状态栏显示在(A)中,但是当我按下将子视图控制器添加到(A)的按钮时隐藏。
我尝试将prefersStatusBarHidden
设置为false
并在按下按钮时使用UIApplication.shared.isStatusBarHidden = true
将其隐藏,但这不起作用。
肯定我出了点问题,有人可以启发我吗?
提前致谢。
PS:我只需要它不可见,就Swift而言不一定是“隐藏”的。
隐藏状态栏
UIApplication.shared.keyWindow?.windowLevel = UIWindowLevelStatusBar
带回状态栏
UIApplication.shared.keyWindow?.windowLevel = UIWindowLevelNormal
您可以创建一个变量来保存布尔值,以设置状态栏是否隐藏
var _isStatusBarHidden: Bool = false
然后创建它的getter和setter
var isStatusBarHidden: Bool {
get{
return _isStatusBarHidden
}
set {
if _isStatusBarHidden != newValue {
_isStatusBarHidden = newValue
self.setNeedsStatusBarAppearanceUpdate()
}
}
}
您必须覆盖prefersStatusBarHidden
属性
override var prefersStatusBarHidden: Bool {
return self._isStatusBarHidden
}
最后一件事是在用户按下按钮时将变量设置为true
:
self.isStatusBarHidden = true
@Alexandre Lara的代码略有改进:
var isStatusBarHidden: Bool = false {
didSet {
if oldValue != self.isStatusBarHidden {
self.setNeedsStatusBarAppearanceUpdate()
}
}
}
override var prefersStatusBarHidden: Bool {
return self.isStatusBarHidden
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.