iOS:我应该为animation添加UIViews还是CALayers?

比方说,我想添加50个图像到一个视图为animation他们的目的。 假设我正在计划使用Core Animation(例如CABasicAnimation)而不是“UIView”animation。

我最好join50个子视图还是50个子图层? 这有什么不同吗?

谢谢。

正如我在这里所描述的,我已经在animation中使用了UIViews和CALayers,并且发现它们之间的性能差异可以忽略不计。 UIViews在图层周围是非常轻量级的包装。 另外,您需要的任何基于图层的animation都可以轻松应用到UIView的背景层。

在我想创build跨平台(Mac / iOS)UI元素的情况下,我直接使用了CALayers,因为CALayers在两个平台上的实现几乎完全相同(与显着不同的NSView和UIViews不同)。 CALayers没有开箱即用的触摸处理程序,但是如果需要,您可以添加该function。

还有一些边缘情况,您可能想要直接使用图层,例如试图对图层进行有限的三维操作(如CoverFlow效果)或使用CAReplicatorLayer产生粒子效果。

UIViews包含子图层,所以它们的重量更重,并且包含了对于所有50个图像(比如事件和触摸处理程序/variables)可能不需要的东西。 因此,使用图层可能会稍微更有效,并且比使用每个图像的视图less一点内存。

这种less量图像的差异可以忽略不计。 使用最方便的。

我还没有做animation(但:-),但我记得读到的东西build议创build一个图像,所有50平铺在它上面,然后在绘制时抵消正确的图像。 这样你只需要一层或UIImage或任何显示它。 我不知道速度,但我想这会节省内存,可能会更容易pipe理和编码。