我有一个点击手势识别器连接到我的 ImageView 。当点击图像时,它会变成全屏,当再次点击时,它会消失。用户可以缩放图像,但是当用户按住图像并四处移动时,它会显示背景 View 。我想隐藏背景,以便在图像被关闭之前看不到 View 。我认为我提供的图片比文字解释得更好。
var newImageView: UIImageView!
@IBAction func imageTapped(_ sender: UITapGestureRecognizer) {
self.navigationController?.setNavigationBarHidden(true, animated: true)
let imageView = sender.view as! UIImageView
let scrollView = UIScrollView(frame: self.view.frame)
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(dismissFullscreenImage))
scrollView.addGestureRecognizer(tap)
scrollView.delegate = self
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 3.0
scrollView.addSubview(newImageView)
self.view.addSubview(scrollView)
}
func viewForZooming(in scrollView: UIScrollView) -> UIView?
{
return newImageView;
}
func dismissFullscreenImage(_ sender: UITapGestureRecognizer) {
self.navigationController?.setNavigationBarHidden(false, animated: true)
sender.view?.removeFromSuperview()
}
最佳答案
您可以使用 backgroundElement.isHidden = true
属性简单地隐藏元素。关闭 View 后,您可以使用 backgroundElement.isHidden = false
重置背景。
关于ios - 图片放大时如何隐藏背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43905052/