我有自定义属性,我重写+needsDisplayForKey:来返回这个属性的YES。我的-drawInContext:方法非常复杂,而受自定义属性影响的矩形非常小。我想优化它。
我正在考虑的解决方案是实现自定义设置器,在其中我将显式标记受影响的矩形以显示。有一件事我不确定,那就是这样的实现将等同于原始的实现,并将处理隐式动画。(rdar://11008555)
它是平等的还是有更好的解决办法?(目标平台为10.6+)
发布于 2012-03-08 08:12:40
无法在CALayer的一部分上绘图。核心动画层被实现为纹理在OpenGL表面。当您实现自定义绘图时,本质上发生的是使用绘图命令构建位图,然后将该位图设置为CALayer的OpenGL曲面的纹理。
您可以自己管理图层的位图缓存(使用NSImage或CGContext)。这样,您就可以修改位图中需要重绘的部分,然后使用setContents:将图像绘制到图层。
https://stackoverflow.com/questions/9613620
复制相似问题