假设我想在视图中添加50个图像以便为它们制作动画.我们假设我正在计划使用Core Animation(例如,CABasicAnimation)而不是“UIView”动画.
我最好通过添加50个子视图或50个子图层来实现这一点吗?这有什么不同吗?
谢谢.
解决方法
正如我描述的那样,我在动画中使用了UIViews和CALayers,发现它们之间的性能差异可以忽略不计. UIViews是层周围非常轻量级的包装器.此外,您需要的任何基于图层的动画都可以轻松应用于UIView的背景层.
我已经在我想要创建跨平台(Mac / iOS)UI元素的情况下直接使用CALayers,因为CALayers在两个平台上的实现几乎完全相同(与显着不同的NSView和UIViews不同). CALayers没有任何开箱即用的触摸处理程序,但如果需要,您可以添加该功能.
还有一些边缘情况,您可能希望直接使用图层,例如尝试对图层进行有限的3-D操作(如在CoverFlow效果中)或使用CAReplicatorLayer生成粒子效果时.