我有很多层支持的视图包含在a中NSScrollview
,主要关注滚动性能.的documentView
和更高的是层支持因此它们的子视图也层支持的.
以下是显示/呈现代码可能出现的三个自然位置:
NSView.wantsUpdateLayer
返回false(或者不执行任何操作,因为这是默认值)并在NSView的drawRect
方法中进行绘制NSView.wantsUpdateLayer
返回true并在NSView的updateLayer
方法中绘图NSView
并用CALayer的drawInContext
方法执行所有绘图从WWDC 2013会话215的讨论中可以看出,(2)比(1)更具性能,因为视图不需要为drawRect输出创建临时存储.首先,我没有100%清晰地知道什么时候"支持商店",什么时候没有呢?其次,(2)和(3)如何比较以及何时可以使用一个而不是另一个?
特别是,我必须在我的视图中绘制文字.我将如何在updateLayer调用中执行此操作?绘制文本的唯一例子似乎需要掌握一个上下文 - 这在当然不可用updateLayer
.