UIViewPropertyAnimator - 简单地停止所有动画,而不是特定的?

Posted

技术标签:

【中文标题】UIViewPropertyAnimator - 简单地停止所有动画,而不是特定的?【英文标题】:UIViewPropertyAnimator - simply stop all animations, rather than a specific one? 【发布时间】:2017-12-15 00:21:44 【问题描述】:

UIViewPropertyAnimator 中,有没有办法停止所有UIViewPropertyAnimator 动画?

或者也许只是获取所有当前的动画 - 当然你可以stop他们所有。

这个可以吗?

或者你真的必须这样做

(a) 每个UIViewPropertyAnimator 只做一次,

和,

(b) 保留对其中每一个的引用?

【问题讨论】:

有任何更新吗? 一个好问题@SwiftRabbit,仅此而已! :O 你问“或者你真的必须保留对每一个动画的引用吗?”既然UIViewPropertyAnimator 不返回对它创建的动画的引用,你怎么会得到对动画的引用?您的意思是“保留对每个动画师的引用吗?”您使用的是多个动画师还是一个动画师? “你如何获得对动画的引用”这就是我想知道的 - 有没有办法让它全部吐出来? 【参考方案1】:

每个动画必须至少有一个 UIViewPropertyAnimator 实例。为了停止动画,我们必须在动画实例上显式调用stopAnimation(_:)

一种方法是创建一个工厂类来获取UIViewPropertyAnimator 实例并在集合或数组中跟踪它。然后使用这个工厂类一次停止或启动所有动画。或者使用一个UIViewPropertyAnimator 来执行所有动画并停止它。

【讨论】:

正如它所说的“或者你真的必须保留对每个动画的引用吗?” 要么使用一个动画师实例,要么跟踪所有动画师实例

以上是关于UIViewPropertyAnimator - 简单地停止所有动画,而不是特定的?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 UIViewPropertyAnimator 中使用“unowned”

UIViewPropertyAnimator 的反弹效果

完成块内的 UIViewPropertyAnimator 状态?

NSLayoutConstraints 的 UIViewPropertyAnimator 使视图消失

UIViewPropertyAnimator 开头有短动画片段

UIViewPropertyAnimator - 简单地停止所有动画,而不是特定的?