【发布时间】:2010-09-29 22:12:25
【问题描述】:
我有很多 CALayer 以“回合制”方式进行动画处理的情况。我为每个 CALayers 上的位置设置动画,但它们的持续时间完全相同。一旦所有这些 CALayer 都完成了动画制作,就会启动一个新的“转折”,并且它们会再次对改变位置进行动画处理。
整个想法是,通过位置之间的线性插值,以恒定的速度,状态到状态之间的基于回合的转换看起来就像一个实时动画。然而,这很难通过许多不同的 CALayer 来实现。
CAAnimationGroup 用于将单个 CALayer 上的动画组合在一起。但我想知道,是否有一个简单的解决方案可以将多个 CALayers 上应该具有相同持续时间的动画组合在一起?
已编辑以包含对 Kevin Ballard 问题的回复
我的问题就在于此。我正在为我的每个 CALayers 创建动画,然后放 NSArray 中的那些。一旦我得到单个动画结束的回调,我将它从 NSArray 中删除。一旦它为空,我再次为它们创建动画。
如果图层多于几层,则在所有动画完成与新动画开始之间存在明显的延迟。
我想,如果我可以将所有这些动画组合成一个动画,则可以在动画之间没有延迟的情况下制作更多层。从而不会破坏连续动画的错觉。
【问题讨论】: