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

2024-02-05

我有许多层支持的视图包含在NSScrollview and am 主要关注滚动性能. The documentView和更高层是受层支持的,因此它们的子视图也是受层支持的。

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

  1. 覆盖NSView.wantsUpdateLayer返回 false (或者不执行任何操作,因为这是默认设置)并在 NSView 中进行绘图drawRect method
  2. 覆盖NSView.wantsUpdateLayer返回 true 并在 NSView 中进行绘图updateLayer method
  3. 请勿绘制NSView完全并在 CALayer 中执行所有绘图drawInContext method

来自WWDC 2013 第 215 场据说 (2) 比 (1) 的性能更高,因为视图不需要为 drawRect 输出创建临时存储。首先,我没有 100% 清楚什么时候创建“后备存储”,什么时候不创建,其次如何比较(2)和(3)以及何时可以使用其中一个?

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


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

层支持的 NSView 性能,直接在 CALayer.drawInContext 中渲染: 的相关文章

随机推荐

  • 为什么 Ubuntu docker 镜像不是虚拟机 [重复]

    这个问题在这里已经有答案了 我明白了虚拟机和容器之间的巨大区别 但这让我对 Ubuntu 容器如何存在感到困惑 这对我来说感觉很矛盾 因为 Ubuntu 是一个操作系统 https hub docker com ubuntu https h
  • 未知属性 onItemSelected/onCheckedChanged

    我创建了 SwitchCompat 并添加了android onCheckedChanged 一切正常 但 Android Studio 将此属性标记为警告 描述 未知属性 android onCheckedChanged AppCompa
  • java中的ESC/POS图像

    我需要在热敏打印机 SAM4S ELLIX40 中打印此图像 我一直在搜索和测试几个代码 但实际上没有任何效果 他们说 使用这个命令 你会看到一行 我发送了它 但没有任何反应 我尝试了手册中的命令 ESC m nL nH d1 dk GS
  • 字典键和 eval 中的破折号

    在我被 评估是邪恶 的人群打死之前 在这种情况下这是必要的邪恶 我无法改变它 Eval 有其用途 并且在严格控制的环境中它非常强大 然而 我有一个没有明显解决方案的问题 我希望能够跳出框框思考 gt gt gt mydict a b woo
  • Backbone.js Collection.create 并覆盖 Model.set

    我有一个主干模型 我在其中更改了 set 方法来计算模型每组的额外属性 根据文档 这应该是调用 super 的方式 以确保模型确实被保存 Backbone Model prototype set call this attributes o
  • 按空格分割字符串[重复]

    这个问题在这里已经有答案了 无论空格有多长 如何通过空格分割字符串 例如 来自以下字符串 the quick brown fox jumps over the lazy dog 我会得到一个数组 the quick brown fox ju
  • Vue 3:resolveComponent 只能在 render() 或 setup() 中使用

    我正在尝试在 Vue 3 中渲染一个模板 该模板包含一个组件 该组件在实例上本地注册 import template from template import RenderlessPagination from RenderlessPagi
  • Bash - 如果子节点的属性值不等于特定值,则删除 XML 节点?

    我有 RSS 提要 如下所示
  • 给定背景颜色,黑色还是白色文本?

    我正在尝试找到一种方法来确定在给定背景颜色 作为十六进制值 的情况下是否使用黑色或白色文本 以前有人处理过这个吗 有没有有效的方法来做到这一点 就我而言 我将使用 PHP 来实现逻辑 尽管任何使用其他语言的经验都是受欢迎的 亮度对比算法 我
  • JSF-将参数传递给 valuechangelistener

    我有一个像这样的小单选按钮
  • 确定 xml 文件是否包含数据 - c#

    我如何知道我的 XML 文件是否还包含名称空间信息之外的数据 一些文件包含以下内容 如果我遇到这样的文件 我想将该文件放在错误目录中 您可以使用 XmlReader 来避免 XmlDocument 的开销 在您的情况下 您将收到异常 因为根
  • pip 下载而不执行 setup.py

    如何下载发行版 可能是 sdist 而不可能执行setup py文件 可能包含恶意代码 我不想递归获取依赖项 只想下载指定发行版的一个文件 尝试无效 pip download no deps mydist 这是一个可重现的示例 演示了set
  • 如何向我在 Android 中用作背景的可绘制对象添加圆角?

    我有一个特定的可绘制对象 在我的应用程序中用作背景 它不是纯色 现在我想给这个可绘制对象添加圆角 我只发现圆角可用于具有渐变或纯色作为背景的形状 但没有其他可绘制的形状 是否有另一种简单的方法向可绘制对象添加圆角 Use AQuery使可绘
  • 桶太多,直方图聚合失败

    我有一个对 elastic 的查询 其中包含总共 8 个嵌套聚合 所有聚合都是term聚合 除了一个聚合histogram聚合 如果我删除该直方图聚合 查询将完美运行 但对于直方图聚合 它会抛出这个特定的错误 此聚合创建了太多存储桶 100
  • 为任何 CMS 系统创建 sitemap.xml 的最有效的性能方法是什么?

    我们想要在 CMS 系统中实现 sitemap xml 功能 我们的开发人员内部有一些争论 认为此功能会影响性能 因为每次内容发生更改时 都需要创建网站的完整链接列表并将其放置在 sitemap xml 中 这个想法是 每次编辑或添加公共查
  • Android Studio 中的 APK 分析器是什么以及如何充分利用它?

    Android Studio 包含一个 APK 分析器 可在顶部菜单中找到 Build gt Analyze APK 它是什么以及如何充分利用它 构建过程完成后 APK 分析器可以提供有关 APK 文件组成的详细信息 使用 APK 分析器的
  • Python 将私钥转换为 RSA 密钥

    我有一个具有以下格式的私钥 BEGIN ENCRYPTED PRIVATE KEY MIIE6TAbBgkqhki END ENCRYPTED PRIVATE KEY 如何将其转换为 RSA 格式的密钥 BEGIN RSA PRIVATE
  • C++ 在后台有一个函数重复

    我正在使用微软视觉表达 我已查看已接受的答案this https stackoverflow com questions 10807681 loop every 10 second问题 它似乎没有做我想做的事 这是对我来说每秒重复的函数 d
  • 为什么这个偶数函数的 FFT 不是真实的?

    因此 在 iPython 中 我运行以下命令 In 1 from pylab import In 2 x np array 4 3 2 1 0 1 2 3 4 In 3 rfft x Out 3 array 20 00000000 0 j
  • 层支持的 NSView 性能,直接在 CALayer.drawInContext 中渲染:

    我有许多层支持的视图包含在NSScrollview and am 主要关注滚动性能 The documentView和更高层是受层支持的 因此它们的子视图也是受层支持的 以下是显示 渲染代码可以放置的三个自然位置 覆盖NSView want