我在图像上有一个长按手势识别器。当有人点击图像时,我想要一个小动画发生在图片变得有点小0.1秒,然后它再增长回原来的大小。我这样做是为了增加他们推动某些东西的效果。
这是我长按手势的功能
@objc func handleLongPress(gesture: UILongPressGestureRecognizer) {
if gesture.state == .began {
pushBackImage()
}
}
我调用pushBackImage函数来处理动画图像。这是下面的功能。
func pushBackImage() {
UIView.animate(withDuration: 0.1, animations: {
self.contentImage.frame = CGRect(x: self.contentImage.frame.origin.x, y: self.contentImage.frame.origin.y, width: self.contentImage.frame.width / 1.25, height: self.contentImage.frame.height / 1.25)
}) { (completed) in
UIView.animate(withDuration: 0.1, animations: {
self.contentImage.frame = CGRect(x: self.contentImage.frame.origin.x, y: self.contentImage.frame.origin.y, width: self.contentImage.frame.width * 1.25, height: self.contentImage.frame.height * 1.25)
})
}
}
所以这就是上面的代码所做的。它使图片变小,然后再回到原来的大小。问题是它不会从图像中心变小。我希望图像从图像中心缩小,以便它可以保持在相同的位置。
答案 0 :(得分:2)
为缩小使用量,请根据需要更改x,y值。
self.myView.transform = CGAffineTransform(scaleX: 0.25, y: 0.25)
扩大使用量大于1。
self.myView.transform = CGAffineTransform(scaleX: 1.25, y: 1.25)