Xcode Swift image zoom gesture

10,401

Solution 1

Use UIScrollView and add UIImgeView in scroll view

import UIKit

class ViewController: UIViewController,UIScrollViewDelegate
{
    var scrollV : UIScrollView!
    var imageView : UIImageView!

    override func viewDidLoad()
    {
        super.viewDidLoad()

        self.navigationController?.navigationBarHidden = true

        scrollV=UIScrollView()
        scrollV.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height)
        scrollV.minimumZoomScale=1
        scrollV.maximumZoomScale=3
        scrollV.bounces=false
        scrollV.delegate=self;
        self.view.addSubview(scrollV)

        imageView=UIImageView()
        imageView.image = UIImage(imageLiteral: "neymar.jpg")
        imageView.frame = CGRectMake(0, 0, scrollV.frame.width, scrollV.frame.height)
        imageView.backgroundColor = .blackColor()
        imageView.contentMode = .ScaleToFill
        scrollV.addSubview(imageView)
   }

   func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView?
   {
        return imageView
   }
}

Solution 2

Take gesture programmatically and make its method and write down this code in the method.

pinchRecognizerOnView() is my method name. Take one view or image view inside view controller and add this new view in that.Now apply gesture method on this new view.

func pinchRecognizerOnView(sender: UIPinchGestureRecognizer!) {

    sender.view?.transform = CGAffineTransformScale((sender.view?.transform)!, sender.scale, sender.scale)

    sender.scale = 1

    // its for zoom in out screen
}
Share:
10,401
Flemming Ovesen
Author by

Flemming Ovesen

Beginner in programming iOS apps in Swift and Obj-C

Updated on June 28, 2022

Comments

  • Flemming Ovesen
    Flemming Ovesen about 2 years

    Hope someone can help me. Im trying to make a zoom gesture, so when the image are presented the user can zoom the image with fingers.

    My code to present the image are:

    // MARK: Show image full screen
    
    func imageTapped(img: AnyObject) {
    
        self.navigationController?.navigationBarHidden = true
    
        let imageView = productImage as UIImageView
    
        let newImageView = UIImageView(image: imageView.image)
        newImageView.frame = self.view.frame
        newImageView.backgroundColor = .blackColor()
        newImageView.contentMode = .ScaleToFill
        newImageView.userInteractionEnabled = true
    
        let tap = UITapGestureRecognizer(target: self, action: "dismissFullscreenImage:")
        newImageView.addGestureRecognizer(tap)
        self.view.addSubview(newImageView)
    }
    
    func dismissFullscreenImage(sender: UITapGestureRecognizer) {
        sender.view?.removeFromSuperview()
        self.navigationController?.navigationBarHidden = false
    }
    
  • Flemming Ovesen
    Flemming Ovesen over 8 years
    How do i make the image show i full size when tapped ?
  • Shrikant Tanwade
    Shrikant Tanwade over 8 years
    Add tap gesture on image view and create new view with image and cancel button. After clicked cancel button remove this view from superview