hidesBarsOnTap - 导航栏 hidden/displayed 事件?
hidesBarsOnTap - Navigation Bar hidden/displayed event?
我想在导航栏隐藏时将视图的背景颜色设置为黑色,在导航栏显示时设置为白色。
属性hidesBarsOnTap
在viewDidLoad
中设置为true
。这很好用:
navigationController?.hidesBarsOnTap = true
如何在隐藏和显示栏时通知我?
对不起,我弄错了。以下代码完全符合您的要求。如果您有工具栏,您也可以将其设置为隐藏。
class ViewController: UIViewController {
var hidden = false {
didSet {
if let nav = navigationController {
nav.setNavigationBarHidden(hidden, animated: true)
nav.setToolbarHidden(hidden, animated: true)
view.backgroundColor = hidden ? UIColor.blackColor() : UIColor.whiteColor()
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
let recognizer = UITapGestureRecognizer(target: self, action: "tap:")
view.addGestureRecognizer(recognizer)
}
func tap(recognizer: UITapGestureRecognizer) {
if recognizer.state == .Ended {
hidden = !hidden
}
}
}
由于 hidesBarsOnTap
是布尔类型,我们可以很容易地使用它来检查并将其用作选项,如下例所示:
var set : Bool = navigationController?.hidesBarsOnTap //true or false
if (set){
//do what you want when set
}else{
//do what you want when it is not set
}
我想在导航栏隐藏时将视图的背景颜色设置为黑色,在导航栏显示时设置为白色。
属性hidesBarsOnTap
在viewDidLoad
中设置为true
。这很好用:
navigationController?.hidesBarsOnTap = true
如何在隐藏和显示栏时通知我?
对不起,我弄错了。以下代码完全符合您的要求。如果您有工具栏,您也可以将其设置为隐藏。
class ViewController: UIViewController {
var hidden = false {
didSet {
if let nav = navigationController {
nav.setNavigationBarHidden(hidden, animated: true)
nav.setToolbarHidden(hidden, animated: true)
view.backgroundColor = hidden ? UIColor.blackColor() : UIColor.whiteColor()
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
let recognizer = UITapGestureRecognizer(target: self, action: "tap:")
view.addGestureRecognizer(recognizer)
}
func tap(recognizer: UITapGestureRecognizer) {
if recognizer.state == .Ended {
hidden = !hidden
}
}
}
由于 hidesBarsOnTap
是布尔类型,我们可以很容易地使用它来检查并将其用作选项,如下例所示:
var set : Bool = navigationController?.hidesBarsOnTap //true or false
if (set){
//do what you want when set
}else{
//do what you want when it is not set
}