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 状态?
NSLayoutConstraints 的 UIViewPropertyAnimator 使视图消失