层支持的NSView性能,直接在CALayer.drawInContext中呈现:

时间:2015-03-17 20:33:15

标签: cocoa calayer nsview nsscrollview

我有很多层支持的视图,其中包含NSScrollview,而主要关注滚动性能documentView及更高版本是图层支持的,因此他们的子视图也是图层支持的。

以下是显示/渲染代码可以使用的三个自然位置:

  1. 覆盖NSView.wantsUpdateLayer以返回false(或者不做任何事情,因为这是默认设置)&在NSView的drawRect方法
  2. 中绘图
  3. 覆盖NSView.wantsUpdateLayer以返回true&在NSView的updateLayer方法
  4. 中绘图
  5. 根本不在NSView画画在CALayer的drawInContext方法
  6. 中执行所有绘图

    来自 WWDC 2013 Session 215 的讨论声明(2)比(1)更高效,因为视图不需要为drawRect输出创建临时存储。首先,我没有100%明确何时支持商店"是和(2)和(3)如何进行比较以及何时使用一个而不是另一个?

    特别是,我必须在我的视图中绘制文字。 我将如何在updateLayer调用中执行此操作?绘制文本的唯一示例似乎需要掌握上下文 - updateLayer中无法自然获取。

0 个答案:

没有答案