如果没有动画影响,立即移动完成

时间:2019-07-11 12:18:35

标签: ios swift animation uiview duration

我正在使用 UIView.animated(withDuration:animations:completion:)功能,有时动画块中没有动画受到影响

例如:

让我们假设我有一个view,并且它的frame.origin.y已经等于0。

现在我不想制作的动画是:

UIView.animate(
    withDuration: 1,
    animations: {
        self.view.frame.origin.y = 0
    }
    completion: { completed in
        guard completed else { return }
        // do something
    }
)

在1秒后调用完成块,而不是立即调用。

如果没有任何持续时间的动画块中没有受到影响的动画,如何使完成块立即调用。

2 个答案:

答案 0 :(得分:2)

这是您应该自己处理的事情,animations不知道,您可以进行比较

 if self.view.frame.origin.y != someValue {
    // do animation
 }
 else {
    // run some other code
 }

答案 1 :(得分:1)

替换

withDuration: 1,

使用

withDuration: 0.01,

(甚至更少)