同时为多个CALayers制作动画的最佳方法?

时间:2015-07-04 22:05:37

标签: ios objective-c swift animation

我有一些代码,我试图同时运行多个CALayer动画。起初,我认为使用CAAnimationGroup是实现此目的的正确方法,但后来我意识到CAAnimationGroup只将几个CAAnimations组合在一起,然后将它们全部应用于单个 CALayer,而我正试图将每个动画发送给几个不同的CALayers,动画全部同时运行。

一个明显的解决方案是设置所有CAAnimations,然后只需将它们附加到各自的CALayers,但我想知道是否有一种“最佳实践”方法来做这样的事情会有更多例如,如果将来我想略微错开各种动画开始时间或对动画如何协同工作做出其他调整,那么灵活性和易于修改。换句话说,某种方式可以引入CAAnimationGroup提供的相同灵活性,但可以用于协调应用于多个CALayer的多个CAAnimations的运行。

有人有什么建议吗?现在,我认为最简单的方法就是动画错开动画将使用多个performSelector: withObject: afterDelay:调用将动画在不同时间附加到各自的CALayers。

1 个答案:

答案 0 :(得分:0)

虽然我不确定是否有办法在不同的CALayer动画之间进行同步,但另一种方法是你可以使用QuartzCode(http://www.quartzcodeapp.com)。使用它,您可以使用UI轻松更改不同CALayers动画的开始时间,结束时间或持续时间,并将其导出到代码。

(注意:我是QuartzCode的开发者)