我正在为Xcode的Mac OS X应用开发烛台图的动画过渡。我希望图表的每个蜡烛分别但同时进行动画处理。
例如,其中一个转换具有“先入后出”的第一个烛光上升。然后,在整个动画过程的三分之一左右,下一个蜡烛将开始相同的动画。重复此过程,直到所有条形都出现为止,因此您会获得波浪效果。
基本上,我只能看到一种实际的方法:
为每个蜡烛创建一个CAShapeLayer
并分别为其设置动画。
乍看之下,我不喜欢这种方法,因为根据数据,我可能在蜡烛上至少有一百个图层,并且它们都立即进行动画处理。我知道Core Animation会将处理移至GPU,但我不认为这是“最佳实践”。
也许更好的方法是使用CALayer
并将所有图层放在同一CGContext
中,这样CAShapeLayer
不会创建一百多个上下文(CGContext vs CALayer) 。但是,那仍然不能绕过我使用一百多个层。
在复杂的Mac动画开发中是否正在像正常情况那样创建许多层?
尽管如此,我仍然希望将所有蜡烛都放在一个CGMutablePath
中,并找到一种复杂的方法来向CAShapeLayer
添加路径,并可能用CAAnimationGroup
对其进行动画处理(研究:{{ 3}})。 CAAnimationGroup
不太可能给我想要的效果(Multiple paths in CAShapeLayer)
我需要专家对“最佳实践”方法的意见。
[我正在使用Swift,所以请仅提供Swift示例! :)]