代码之家  ›  专栏  ›  技术社区  ›  user9128806

收缩UIPinchGestureRecognitor后将图像返回到原始大小

  •  0
  • user9128806  · 技术社区  · 7 年前

    我正在用相册制作一个页面视图控制器,由于我无法找到在不更改图片的情况下平移缩放后的图像的方法,我希望当用户停止挤压时,图像恢复到原始大小。

    这是我的代码:

      @objc func pinch(sender:UIPinchGestureRecognizer) {
        if sender.state == .began || sender.state == .changed {
            let currentScale = self.contentImageView.frame.size.width / self.contentImageView.bounds.size.width
            let newScale = currentScale*sender.scale
            let transform = CGAffineTransform(scaleX: newScale, y: newScale)
            self.contentImageView.transform = transform
            sender.scale = 1
    
           if sender.state == .ended {
                contentImageView.transform = CGAffineTransform.identity
            }
    
        }
    }
    

    缩放部分工作得很好,但当我释放收缩时,它没有任何作用,任何建议都将非常感谢。

    1 回复  |  直到 7 年前
        1
  •  1
  •   biloshkurskyi.ss    7 年前

    从代码中,您永远不会重置:

      if sender.state == .ended {
            self.contentImageView.transform = CGAffineTransform.identity
      }
    

    因为您试图在第一个if中验证它。尝试如下更改:

    if sender.state == .began || sender.state == .changed { ... } else if sender.state == .ended { self.contentImageView.transform = CGAffineTransform.identity }