函数中的隐藏状态栏
Hidden Statusbar in a function
我想在隐藏导航栏和工具栏时隐藏状态栏。
如何让状态栏隐藏在 if NavigationBar.hidden == false && Toolbar.hidden == false{}
中??
我不知道我该怎么做,我知道 return Statusbarhidden 的功能,但总的来说就是 ViewController,我想将它隐藏在功能中。
感谢您的帮助。
func ImageTapGesture () {
if NavigationBar.hidden == false && Toolbar.hidden == false{
NavigationBar.hidden = true
Toolbar.hidden = true
} else if NavigationBar.hidden == true && Toolbar.hidden == true {
NavigationBar.hidden = false
Toolbar.hidden = false
}
}
一个 Swift 2.x 兼容的解决方法来完成您需要做的事情:
func hideStatusBar(yOffset:CGFloat) { // -20.0 for example
let statusBarWindow = UIApplication.sharedApplication().valueForKey("statusBarWindow") as! UIWindow
statusBarWindow.frame = CGRectMake(0, yOffset, statusBarWindow.frame.size.width, statusBarWindow.frame.size.height)
}
func showStatusBar() {
let statusBarWindow = UIApplication.sharedApplication().valueForKey("statusBarWindow") as! UIWindow
statusBarWindow.frame = CGRectMake(0, 0, statusBarWindow.frame.size.width, statusBarWindow.frame.size.height)
}
例如,要使用它,您可以启动:
hideStatusBar(-20.0)
Swift语言下,可以参考下面隐藏的代码,不需要动画效果的可以注释掉。
var isHidden:Bool = false
@IBAction func clicked(_ sender: AnyObject) {
isHidden = !isHidden
UIView.animate(withDuration: 0.5, animations: { () -> Void in
self.setNeedsStatusBarAppearanceUpdate()
})
}
override var preferredStatusBarUpdateAnimation : UIStatusBarAnimation {
return UIStatusBarAnimation.slide
}
override var prefersStatusBarHidden : Bool {
return isHidden
}
也可以参考下面link的Demo,是我一次写的项目需求。
Github:https://github.com/ReverseScale/HiddenStatusBar
希望能帮到你。
我想在隐藏导航栏和工具栏时隐藏状态栏。
如何让状态栏隐藏在 if NavigationBar.hidden == false && Toolbar.hidden == false{}
中??
我不知道我该怎么做,我知道 return Statusbarhidden 的功能,但总的来说就是 ViewController,我想将它隐藏在功能中。
感谢您的帮助。
func ImageTapGesture () {
if NavigationBar.hidden == false && Toolbar.hidden == false{
NavigationBar.hidden = true
Toolbar.hidden = true
} else if NavigationBar.hidden == true && Toolbar.hidden == true {
NavigationBar.hidden = false
Toolbar.hidden = false
}
}
一个 Swift 2.x 兼容的解决方法来完成您需要做的事情:
func hideStatusBar(yOffset:CGFloat) { // -20.0 for example
let statusBarWindow = UIApplication.sharedApplication().valueForKey("statusBarWindow") as! UIWindow
statusBarWindow.frame = CGRectMake(0, yOffset, statusBarWindow.frame.size.width, statusBarWindow.frame.size.height)
}
func showStatusBar() {
let statusBarWindow = UIApplication.sharedApplication().valueForKey("statusBarWindow") as! UIWindow
statusBarWindow.frame = CGRectMake(0, 0, statusBarWindow.frame.size.width, statusBarWindow.frame.size.height)
}
例如,要使用它,您可以启动:
hideStatusBar(-20.0)
Swift语言下,可以参考下面隐藏的代码,不需要动画效果的可以注释掉。
var isHidden:Bool = false
@IBAction func clicked(_ sender: AnyObject) {
isHidden = !isHidden
UIView.animate(withDuration: 0.5, animations: { () -> Void in
self.setNeedsStatusBarAppearanceUpdate()
})
}
override var preferredStatusBarUpdateAnimation : UIStatusBarAnimation {
return UIStatusBarAnimation.slide
}
override var prefersStatusBarHidden : Bool {
return isHidden
}
也可以参考下面link的Demo,是我一次写的项目需求。
Github:https://github.com/ReverseScale/HiddenStatusBar
希望能帮到你。