应该在CALayer上进行栅格化是否会导致图层转换之前或之后的栅格化?

时间:2012-02-02 09:25:31

标签: ios core-animation calayer

我正在尝试优化我的应用。它的视觉效果非常丰富,因此有很多分层的UIViews,包含大型图像和混合等。

我一直在试验shouldRasterize上的CALayers属性。特别是在一个案例中,我有一个UIView,其中包含许多子视图,包括一个表。作为整个屏幕滚动的过渡的一部分,此UIView也会缩放和旋转(使用变换)。

UIView的内容仍然是静态的,所以我认为设置view.layer.shouldRasterize = YES是有意义的。但是,我没有看到性能提升。可能是它在新规模和旋转时重新光栅化每一帧吗?我希望它在开始时会有一个身份变换矩阵,然后在过渡期间进行缩放和旋转时缓存它吗?

如果没有,有没有办法可以强迫它发生?没有添加冗余的额外超级视图/图层,除了缩放和旋转其栅格化内容之外什么都不做......

1 个答案:

答案 0 :(得分:8)

您可以使用CoreAnimation instrument分析您的应用程序来回答您自己的问题。请注意,此设备仅在设备中可用。

您可以启用"颜色点击绿色和未命中红色"。如果你的图层保持红色,则意味着它确实每帧都会对其进行栅格化。