我有几个Core Animation正在同时进行。它们都有一个上下文和一个动画ID,其中上下文是动画对象(UIImageView对象)。我想暂停它们,以便动画暂时停止,然后当有些事情完成时,恢复它以完成它。这些事情只发生在UIScrollView的非常快的滚动移动中。我想通过停止所有正在进行的动画来提高性能,但不是使滚动视图滚动的动画。我已经为该滚动视图实现了contentOffset的自定义动画。有没有办法暂停核心动画并在稍后的某个时间恢复?
8
A
回答
4
我得到解决这个问题的唯一方法如下。
每个视图要停止动画:
设置视图的表现层
帧从该视图
删除所有动画执行您的滚动
重新计算动画
将新动画添加到视图
我知道这不是你想听到的,但它并没有听起来那么糟糕。跟踪你想停止的观点的一个好方法是给他们一个预定的标签。
要移除的动画:
[myView.layer removeAllAnimations]
[myView.layer removeAnimationForKey:@ “theAnimationKey”]
18
可以通过设置的速度暂停层动画将动画设置为零,请参见How to pause the animation of a layer tree。
5
为了任何人谁自带搜索,你这是怎么暂停和恢复动画:从视图
https://developer.apple.com/library/ios/#qa/qa2009/qa1673.html
你如何删除动画? – Thanks 2009-05-30 19:29:44