CALayer的应该是和UIView的drawRect相比吗?

时间:2013-07-18 14:56:51

标签: ios

即使两个API位于堆栈的不同级别,CALayer的shouldRasterize和UIView的drawRect:实现相同的目标 - 渲染位图并对其进行缓存以供将来重用。在这两种情况下,如果视图/图层需要重绘,则缓存的版本将失效。我认为唯一的区别是如何绘制位图。 drawRect:使用CPU完成,而CALayer的shouldRasterize由Core Animation选择使用的任何东西完成,可能是GPU。

人们可以评论这两个API之间的任何其他差异吗?

1 个答案:

答案 0 :(得分:1)

shouldRasterize将绘制的图层及其所有子图层缓存到单个位图上下文中。 drawRect只为单个图层提供位图内容。

请注意,在图层上设置shouldRasterize不会影响图层的绘制方式;它会影响绘制这些像素后发生的事情。您可以单独或一起使用这些选项;它们提供不同的功能。