UIImageView pinch zoom swift

前端 未结 13 779
误落风尘
误落风尘 2020-11-28 04:06

I was hoping someone could help me out. I am trying to allow a user to pinch zoom on a UIImageView(with a max and min level allowed). But for some reason the it does not wor

13条回答
  •  旧时难觅i
    2020-11-28 04:38

    Using Swift 5.0, here is how it works for me:

    let myImageView = UIImageView(image: myImage)
    myImageView.isUserInteractionEnabled = true
    let pinchMethod = UIPinchGestureRecognizer(target: self, action: #selector(pinchImage(sender:)))
    myImageView.addGestureRecognizer(pinchMethod)
    
    @objc func pinchImage(sender: UIPinchGestureRecognizer) {
      guard let sender.view != nil else { return }
    
    if let scale = (sender.view?.transform.scaledBy(x: sender.scale, y: sender.scale)) {
      guard scale.a > 1.0 else { return }
      guard scale.d > 1.0 else { return }
      sender.view?.transform = scale
      sender.scale = 1.0
     }
    }
    

    You can use scale.a, scale.b, scale.c, scale.d, scale.tx and scale.ty to set your scale limits.

提交回复
热议问题