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

时间:2016-01-19 16:09:57

标签: swift uiimageview uinavigationbar uitoolbar

我希望隐藏导航栏和工具栏,当我点击UIImageView时,当导航栏和工具栏被隐藏并再次点击时我想要它回来。

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

我尝试了这个但它确实有效,当我拿走视图而不是FullPhoto时,它会隐藏导航栏和工具栏,我点击导航栏和工具栏。当我点击时,我会隐藏它的UIImageView。

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

这里有隐藏导航栏和工具栏的代码但是当我点击它时它会隐藏并再次点击它又来了。

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果您使用Storyboard进行布局,最佳做法是不使用UIGestureRecognizer,而是使用IBActions。为您要点按的元素创建IBActions控制+拖动),然后设置

NavigationBar.hidden = true
ToolBar.hidden = true

IBAction

答案 1 :(得分:0)

您甚至不需要为navBartabBar创建插座来实现此目的。像您一样为imageView创建一个插座。

@IBOutlet var FullPhoto: UIImageView!

然后在viewDidLoad

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

然后创建点击方法并检查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
     }
}