【发布时间】:2023-04-08 07:11:01
【问题描述】:
我有一个 UIView 动画块,它使用 UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoReverse 选项,所以它会继续运行,但在某些时候我需要停止动画,但更重要的是停止它并使视图返回到其原始位置。
我已经尝试过[dot1.layer removeAllAnimations];,但它在没有返回到原始位置的情况下停止了它的轨道,它停止了中间动画。
我已经尝试停止它,然后只运行第二个动画以将其返回到正确的帧,但这可能有点生涩,因为我不知道它需要多长时间才能持续多长时间等。
那么是否可以在动画完成最后一个周期而不是中途后简单地停止动画?
谢谢。
【问题讨论】:
-
有点小技巧,但是你可以设置一个@property bool,当你想要停止动画和动画块完成时,检查 bool 是否为真,然后 removeAllAnimations 并调用你的下一个动画。您可以读取块中的属性,而不是设置它们,就在那里思考。希望其他人可以对此给出正确的答案。
-
@BooRanger 这不是黑客,而是答案!
标签: iphone objective-c ipad animation uiview