每个CALayer都有自己的绘图上下文吗?

时间:2014-08-05 13:46:57

标签: ios objective-c uiview core-graphics calayer

我有一个UIView子类,它绘制了一堆bezier路径(通常大约10-20个)。目前我有一个CALayer完成所有绘图。现在我希望能够单独为所有线宽设置动画。我正在考虑使用一堆CAShapeLayers,每个都只绘制一条bezier路径。 CAShapeLayer有一个可动画的lineWidth属性。

我从这篇文章中得到了这个想法:Animating Pi Slices using a Custom CALayer

我担心这是否需要10-20倍的内存来绘制,因为每个CAShapeLayers都会创建一个单独的绘图上下文,或者它们是否都会绘制到相同的上下文并共享内存?

1 个答案:

答案 0 :(得分:2)

他们每个人都有独立的存储空间,只要他们在视图层次结构中,除非并且直到随后发生低内存警告。

话虽如此,不要遭受过早优化的诅咒。如果它是表达动画的最简单,最直接的方式,那么它应该是你做的。手机和平板电脑现在有很多记忆。