【问题标题】:Animate image to scale smaller from the center of the image动画图像以从图像中心缩小
【发布时间】:2017-11-23 03:56:10
【问题描述】:

我在图像上有一个长按手势识别器。当有人点击图片时,我希望出现一个小动画,图片在 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)
        })
    }
}

这就是上面代码的作用。它使图片变小,然后恢复到原来的大小。问题是它不会从图像的中心变小。我希望图像从图像的中心缩小,以便它可以保持在相同的位置。

【问题讨论】:

  • 奇怪的问题,但是你有一个长按手势,同时你说当有人点击时。这是两个不同的东西。拜托,你能给我们一些更...一致的东西吗?...复制问题?

标签: ios swift xcode animation


【解决方案1】:

要缩小某些用途,请根据需要更改 x,y 值。

self.myView.transform = CGAffineTransform(scaleX: 0.25, y: 0.25)

扩大使用大于 1。

self.myView.transform = CGAffineTransform(scaleX: 1.25, y: 1.25)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    相关资源
    最近更新 更多