因此,当 View 加载时,我制作了一个按钮移动到屏幕上特定点 (CGPoint
) 的动画。我还添加了一个 swipeGestureRecogniser,如果用户向左滑动,则动画将停止并开始一个新的动画,将按钮带到不同的 CGPoint。我通过调用按钮上的 removeAllAnimations()
方法来完成此操作。问题是当用户向左滑动时,按钮完成了第一个动画而没有动画。所以它不会停止并开始新的动画,而是跳到第一个动画的末尾,然后继续下一个动画。有没有办法停止第一个动画并无缝地开始下一个?
这是代码:
最佳答案
它按预期工作。在您调用 removeAllAnimations()
时,只有一个动画要删除 - 第二个将添加到第一个的完成 block 中。因此,除了嵌套动画,您还可以尝试类似的方法:
// first animation
UIView.animate(withDuration: 5, delay: 0, options: .curveLinear, animations: { /... }, completion: { //... })
// second animation
UIView.animate(withDuration: 5, delay: 5, animations: { /... })
关于ios - Swift - removeAllAnimations() - 一个接一个的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45188905/