点击 UIImageView 时隐藏的导航栏和工具栏

Hidden Navigationbar and Toolbar on Tap a UIImageView

我想在点击 UIImageView 时隐藏导航栏和工具栏,当导航栏和工具栏被隐藏并再次点击时,我想将其恢复。

@IBOutlet var ToolBar: UIToolbar!
@IBOutlet var NavigationBar: UINavigationBar!
@IBOutlet var FullPhoto: UIImageView!

我已经尝试过了,但它不起作用,当我使用视图而不是 FullPhoto 时,它会显示,但导航栏和工具栏是隐藏的,当我点击导航栏时,Toolbar.I 会隐藏它我点击 UIImageView。

let tapRecognizer = UITapGestureRecognizer(target: self, action: "tapImage")
FullPhoto.addGestureRecognizer(tapRecognizer)

这是隐藏导航栏和工具栏的代码,但我会在点击它时将其隐藏,然后再次点击它会再次出现。

func tapImage () {
    NavigationBar.hidden = true
    ToolBar.hidden = true
}

感谢您的帮助。

如果您使用 Storyboard 作为布局,最佳做法是不要使用 UIGestureRecognizer,而是使用 IBActions。创建IBActions (control + drag) 为那些你想点击的元素,然后设置

NavigationBar.hidden = true
ToolBar.hidden = true

IBAction

里面

您甚至不需要为您的 navBartabBar 创建出口来实现这一点。像您所做的那样为您的 imageView 创建一个出口。

@IBOutlet var FullPhoto: UIImageView!

然后在你的viewDidLoad

let tapRecognizer = UITapGestureRecognizer(target: self, action: "tapImage")
FullPhoto.addGestureRecognizer(tapRecognizer)
FullPhoto.userInteractionEnabled = true

然后创建 tap 方法并检查 navigationControllertabBarController

func tapImage(){
     if navigationController?.navigationBar.hidden == false && tabBarController?.tabBar.hidden == false{
         navigationController?.navigationBar.hidden = true
         tabBarController?.tabBar.hidden = true
     }
     else{
         navigationController?.navigationBar.hidden = false
         tabBarController?.tabBar.hidden = false
     }
}