gpt4 book ai didi

ios - UIViewPropertyAnimator 重复

转载 作者:行者123 更新时间:2023-11-28 23:20:19 25 4
gpt4 key购买 nike

我查看了以下 StackOverflow 问题的答案,但似乎没有一个对我有用:在执行完成 block 时,程序没有再次执行动画,而是无限地喷出“完成”广告动画 View 。

How can I repeat animation (using UIViewPropertyAnimator) certain number of times?

这是我的 AnimatorFactory类:

class AnimatorFactory {

@discardableResult
static func rotateRepeat(view: UIView) -> UIViewPropertyAnimator {
let rotate = UIViewPropertyAnimator.runningPropertyAnimator(withDuration: 1.0, delay: 0.0, options: [.curveLinear], animations: {
view.transform = CGAffineTransform(rotationAngle: .pi)
}, completion: { _ in
print("complete")
self.rotateRepeat(view: view)
})

return rotate
}

}

正如您所期望的那样调用 AnimatorFactory.rotateRepeat(view: <someView>)

但是,出现了上面提到的问题。我期望的是 View 会反复旋转,直到我决定更改或停止它的某个时间;这正是我选择使用 UIViewPropertyAnimator 的原因而不是 UIView.animate(withDuration:animations) .

那么创建交互式、可重复的 UIView 动画的最佳方法是什么?非常感谢。

最佳答案

您的代码运行良好。问题是你的动画在第一次之后什么都不做。你说:

view.transform = CGAffineTransform(rotationAngle: .pi)

第一次,我们将旋转从 0 更改为 pi。那就是变化,所以才有了动画。但在那之后,我们只是一遍又一遍地说“留在圆周率”。我们在 pi,你说要留在那里,所以没有改变动画。

您希望每个动画做的是添加 pi,而不是be pi。

关于ios - UIViewPropertyAnimator 重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59721594/

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