Return 捏合后图像变为原始大小 UIPinchGestureRecognizer
Return image to original size after pinch UIPinchGestureRecognizer
我正在做一个带有相册的页面视图控制器,由于我一直无法找到一种在不更改图片的情况下平移缩放图像的方法,我希望图像 return当用户停止捏合时恢复到原来的大小。
这是我的代码:
@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
}
}
}
缩放部分工作正常,但是当我松开手指时它没有任何作用,任何建议将不胜感激。
根据您的代码,您永远不会重置:
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
}
我正在做一个带有相册的页面视图控制器,由于我一直无法找到一种在不更改图片的情况下平移缩放图像的方法,我希望图像 return当用户停止捏合时恢复到原来的大小。
这是我的代码:
@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
}
}
}
缩放部分工作正常,但是当我松开手指时它没有任何作用,任何建议将不胜感激。
根据您的代码,您永远不会重置:
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
}