一旦我的imageView被点击,我将如何隐藏导航栏,一旦我的图像被点击,导航栏就会弄乱全屏图像的视图,我希望在点击图像时隐藏它,并在图像被解除后重新出现 . 这是我的图像被点击的代码 .
//expandImage
@IBAction func expand(_ sender: UITapGestureRecognizer) {
let imageView = sender.view as! UIImageView
let newImageView = UIImageView(image: imageView.image)
newImageView.frame = self.view.frame
newImageView.backgroundColor = .black
newImageView.contentMode = .scaleAspectFit
newImageView.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreen))
newImageView.addGestureRecognizer(tap)
self.view.addSubview(newImageView)
}
func dismissFullscreen(_ sender: UITapGestureRecognizer) {
sender.view?.removeFromSuperview()
}
2 回答
将其添加到您的expand()方法:
并在dismissFullscreen()方法中:
或者您可以创建新的ViewController,将图像传递给它(例如使用segue)并将其添加到新ViewController的viewDidLoad()中:
所以这是你如何做到这一点:
因此,基本上将
UITapGestureRecognizer
添加到imageView
并在imageTapped
函数中检查navigationBar
是否未隐藏,然后您要显示图像并隐藏navigationBar
,如果再次单击imageView
,则需要再次显示navigationBar
.因此,只需将imageTapped中的逻辑添加到
dismissFullscreen
函数中即可 .