I have added a tap gesture recognizer action to my image view. Once the image is tapped it expands to full screen and then dismisses full screen once tapped again. How would I add pinch to zoom to the image after it is already expanded. Here is my code for making the image full screen.
//expand image
let newImageView: UIImageView!
@IBAction func imageTapped(_ sender: UITapGestureRecognizer)
{
let imageView = sender.view as! UIImageView
let scrollView = UIScrollView(frame: self.view.frame)
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(dismissFullscreenImage))
scrollView.addGestureRecognizer(tap)
scrollView.delegate = self
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 5.0
scrollView.addSubview(newImageView)
self.view.addSubview(scrollView)
}
func viewForZooming(in scrollView: UIScrollView) -> UIView?
{
return newImageView;
}
func dismissFullscreenImage(_ sender: UITapGestureRecognizer) {
sender.view?.removeFromSuperview()
}
When you wanna show full image, let use scrollview
instead imageView
let newImageView: UIImageView!
@IBAction func imageTapped(_ sender: UITapGestureRecognizer)
{
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 = 5.0
scrollView.addSubview(newImageView)
self.view.addSubview(scrollView)
}
and remember viewForZooming
delegate func
func viewForZooming(in scrollView: UIScrollView) -> UIView?
{
return newImageView;
}