Rickybobby
Rickybobby

Reputation: 305

Animating a zoomScale on UIScrollView with Swift

Relatively new to iOS apps, and swift, so I'm a little lost on how to proceed.

Basically, I have a UIImageView, and i'm able to pinch to zoom/scroll, as my UIImageView is in a UIScrollView, but I'd like to add a double tap on the UIImage to zoom in as well.

I'm able to zoom in (just set the zoomScale to 3.0 for now), but I'd like to have a smooth transition. I did see the zoom(to:, animated:) method, but I wasn't quite sure on how to zoom into the center of the view.

Anyways, here's what I have thus far.

I've created the tapGestureRecognizer, and assigned it to the UIImageView

 let tapGesture =  UITapGestureRecognizer(target: self, action: #selector(tapImageViewGesture))        
    self.Image1.isUserInteractionEnabled = true
    self.Image1.addGestureRecognizer(tapGesture)

and below is the function to perform the zoom

func tapImageViewGesture(sender: UITapGestureRecognizer) {
    print("Touched")
    self.pinchZoomScroll1.zoomScale = 3.0

}

Is there a simple way I can have some sort of a smooth animation of zooming in?, or should I go with using the zoom function instead, as it already supports animation?

Thank you!!

Upvotes: 0

Views: 1381

Answers (1)

Arnav
Arnav

Reputation: 688

Either you can set set animation true by using this :

self.pinchZoomScroll1.setZoomScale(3.0, animated: true)

or you can also use scrollView delegate func by setting scrollViewminimumScale and max scale:

 pinchZoomScroll1.minimumZoomScale = 1.0
 pinchZoomScroll1.maximumZoomScale = 6.0 

func viewForZooming(in scrollView: UIScrollView) -> UIView? {

return Image1
}

Upvotes: 2

Related Questions