私は、画像ビューに接続されたタップジェスチャ認識器を持っています。画像をタップするとフルスクリーンになり、再びタップすると解除されます。ユーザは、画像をズームするためにピンチする能力を有するが、画像がユーザによって押されて動かされると、それはバックグラウンドビューを示す。背景を隠して、画像が消されるまで見ることができないようにしたい。私が提供したイメージは、私が言葉よりもうまく説明できると思います。画像が拡大されたときに背景を非表示にする方法
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()
}
画像ビューの下に全画面でビューを表示し、画像ビューと同じビューを表示/非表示もできます。黒または任意の色を表示します –