gpt4 book ai didi

ios - 如何在 Swift 中进一步转换/动画已经转换/动画的 UIView?

转载 作者:行者123 更新时间:2023-11-29 05:24:22 24 4
gpt4 key购买 nike

我试图在每次点击时将 UIImageView 动画旋转 5°。然而,每次我点击它时,它似乎都会恢复到原始角度并从那里开始动画,而不是从原来的位置开始。我知道转换需要链接起来,所以我正在这样做,但它仍然不起作用:

UIView.animate(withDuration: 1.0, animations: {
self.imgView.transform = self.imgView.transform.concatenating(CGAffineTransform(rotationAngle: CGFloat.pi/180*5))
}, completion: nil)

我在 animate 函数的一个变体中发现了一个很有前途的选项,但这使它看起来更糟(不知何故甚至弄乱了图像):

UIView.animate(withDuration: 1.0, delay: 0.0, options: .beginFromCurrentState, animations: {
self.imgView.transform = self.imgView.transform.concatenating(CGAffineTransform(rotationAngle: CGFloat.pi/180*5))
}, completion: nil)

我做错了什么?

顺便说一句, View 最初有一个缩放和平移转换,在 viewDidLoad 中设置一次:

        imgView.frame = CGRect(x: 0, y: view.frame.maxY-view.frame.midX, width: view.frame.maxX, height: view.frame.maxX)
imgView.transform = CGAffineTransform.identity.scaledBy(x: 14, y: 14).translatedBy(x: 0, y: 150)

我提到这一点是为了防止问题与本文有关。

最佳答案

每次调用变换时都会增加角度

angel = angel + 0.5
self.imgView.transform = self.imgView.transform.concatenating(CGAffineTransform(rotationAngle: CGFloat.pi/180* angel))

关于ios - 如何在 Swift 中进一步转换/动画已经转换/动画的 UIView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58338687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com