首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否可以强迫CALayer对自定义属性使用setNeedsDisplayInRect:而不是setNeedsDisplay

我是否可以强迫CALayer对自定义属性使用setNeedsDisplayInRect:而不是setNeedsDisplay
EN

Stack Overflow用户
提问于 2012-03-08 06:13:40
回答 1查看 906关注 0票数 0

我有自定义属性,我重写+needsDisplayForKey:来返回这个属性的YES。我的-drawInContext:方法非常复杂,而受自定义属性影响的矩形非常小。我想优化它。

我正在考虑的解决方案是实现自定义设置器,在其中我将显式标记受影响的矩形以显示。有一件事我不确定,那就是这样的实现将等同于原始的实现,并将处理隐式动画。(rdar://11008555)

它是平等的还是有更好的解决办法?(目标平台为10.6+)

EN

回答 1

Stack Overflow用户

发布于 2012-03-08 08:12:40

无法在CALayer的一部分上绘图。核心动画层被实现为纹理在OpenGL表面。当您实现自定义绘图时,本质上发生的是使用绘图命令构建位图,然后将该位图设置为CALayer的OpenGL曲面的纹理。

您可以自己管理图层的位图缓存(使用NSImageCGContext)。这样,您就可以修改位图中需要重绘的部分,然后使用setContents:将图像绘制到图层。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9613620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档