2009-05-30 64 views
8

我有几个Core Animation正在同时进行。它们都有一个上下文和一个动画ID,其中上下文是动画对象(UIImageView对象)。我想暂停它们,以便动画暂时停止,然后当有些事情完成时,恢复它以完成它。这些事情只发生在UIScrollView的非常快的滚动移动中。我想通过停止所有正在进行的动画来提高性能,但不是使滚动视图滚动的动画。我已经为该滚动视图实现了contentOffset的自定义动画。有没有办法暂停核心动画并在稍后的某个时间恢复?

回答

4

我得到解决这个问题的唯一方法如下。

每个视图要停止动画:

设置视图的表现层

帧从该视图

删除所有动画执行您的滚动

重新计算动画

将新动画添加到视图

我知道这不是你想听到的,但它并没有听起来那么糟糕。跟踪你想停止的观点的一个好方法是给他们一个预定的标签。


要移除的动画:

[myView.layer removeAllAnimations]

[myView.layer removeAnimationForKey:@ “theAnimationKey”]

+0

你如何删除动画? – Thanks 2009-05-30 19:29:44