层有什么好处?添加图层怎么办?为什么要考虑图层?

时间:2009-04-13 19:37:10

标签: iphone core-animation

我想知道是什么让Layers与Views不同,当每个View都带有它自己的Layer时。也许我错了。但那么:这些层有什么用呢?

就像我理解的那样,我会使用UIView在GUI中对元素进行分组。我也可以使用UIView来定位其他东西。那么Layers到底在哪里?

我是否应该将它们视为HTML / CSS中的z-index?它们对核心动画的东西有用吗?

2 个答案:

答案 0 :(得分:2)

与UIVIews相比,CALayers

  • 轻质
  • 填充动画的时间信息
  • 有些东西比文字(尤其是unicode)更难绘制。

如果你的人数少于20人,那可能无关紧要。如果您有复杂的动画需求,或者只需要绘制大量图层,您可能会因使用CALayers而受益。

答案 1 :(得分:1)

在iPhone上,根据我的经验,使用UIViews和CALayers之间没有显着的性能差异。 Mac是一个不同的故事,NSViews显着更重要。

复杂的动画有时需要处理CALayers(或至少是视图的图层支持),特别是关键帧动画或沿路径移动。

此外,CALayers可用于创建独立于平台(Mac和iPhone)的自定义用户界面。 UIViews与NSViews截然不同,但是iPhone和Mac OS X Leopard之间的CALayers是相同的(除了iPhone上缺少的一些属性)。我已经使用CALayers在iPhone应用程序和Mac版本之间共享UI代码。