Xcode Swift 图像缩放手势

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/35842521/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 08:37:06  来源:igfitidea点击:

Xcode Swift image zoom gesture

xcodeswiftuiimage

提问by Flemming Ovesen

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
}

回答by Shrikant Tanwade

Use UIScrollView and add UIImgeView in scroll view

使用 UIScrollView 并在滚动视图中添加 UIImgeView

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
   }
}

回答by Yuvraj Sinh

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.

pinchRecognizerOnView()是我的方法名称。在视图控制器中获取一个视图或图像视图并在其中添加这个新视图。现在在这个新视图上应用手势方法。

func pinchRecognizerOnView(sender: UIPinchGestureRecognizer!) {

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

    sender.scale = 1

    // its for zoom in out screen
}