TabBar 隐藏在 viewDidLoad 中但不隐藏在手势功能中
TabBar hides in viewDidLoad but doesnt in gesture function
我尝试在 viewDidLoad() 中调用 tabBarController!.tabBar.hidden = true
,它隐藏了 TabBar。但是,我尝试设置点击手势并隐藏点击栏。父级 viewController 内部有带有子视图的 ScrollView(与 IBOutlet 连接为 myView
)
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
myView.addGestureRecognizer(tap)
}
func handleTap(sender: UITapGestureRecognizer? = nil) {
print("A") // logs successfully
if TabBarHidden == false {
print("B") // logs successfully
//I tried:
tabBarController?.tabBar.hidden = true
// I also tried
tabBarController?.tabBar.alpha = 0
tabBarController?.tabBar.frame.origin.x += 50
hidesBottomBarWhenPushed = true
} else {
...
TabBarHidden = false
}
}
hidden
当我像我说的那样在 viewDidLoad 中调用它时确实有效,但如果我调用点击手势功能则无效。可能是什么问题?我错过了什么?
这段代码完全适合我:
class ViewController: UIViewController {
var tabBarHidden: Bool = false {
didSet {
tabBarController?.tabBar.hidden = tabBarHidden
}
}
override func viewDidLoad() {
super.viewDidLoad()
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapGestureRecognized(_:)))
view.addGestureRecognizer(tapGestureRecognizer)
}
func tapGestureRecognized(sender: UITapGestureRecognizer) {
tabBarHidden = !tabBarHidden
}
}
我尝试在 viewDidLoad() 中调用 tabBarController!.tabBar.hidden = true
,它隐藏了 TabBar。但是,我尝试设置点击手势并隐藏点击栏。父级 viewController 内部有带有子视图的 ScrollView(与 IBOutlet 连接为 myView
)
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
myView.addGestureRecognizer(tap)
}
func handleTap(sender: UITapGestureRecognizer? = nil) {
print("A") // logs successfully
if TabBarHidden == false {
print("B") // logs successfully
//I tried:
tabBarController?.tabBar.hidden = true
// I also tried
tabBarController?.tabBar.alpha = 0
tabBarController?.tabBar.frame.origin.x += 50
hidesBottomBarWhenPushed = true
} else {
...
TabBarHidden = false
}
}
hidden
当我像我说的那样在 viewDidLoad 中调用它时确实有效,但如果我调用点击手势功能则无效。可能是什么问题?我错过了什么?
这段代码完全适合我:
class ViewController: UIViewController {
var tabBarHidden: Bool = false {
didSet {
tabBarController?.tabBar.hidden = tabBarHidden
}
}
override func viewDidLoad() {
super.viewDidLoad()
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapGestureRecognized(_:)))
view.addGestureRecognizer(tapGestureRecognizer)
}
func tapGestureRecognized(sender: UITapGestureRecognizer) {
tabBarHidden = !tabBarHidden
}
}