【问题标题】:How to speed drawing a grid of UIViews?如何加快绘制 UIView 的网格?
【发布时间】:2012-12-19 04:01:45
【问题描述】:

目前我实例化了一个 UIViews 的二维矩阵。每个 UIView 的 drawRect 都被覆盖以绘制 2-3 个形状中的 1 个。

随着网格的扩展,我注意到在每个子视图的 drawRect 中花费了过多的时间。由于我只有 2-3 个形状,我想通过每次仅绘制 2-3 个唯一 UIView 来加快矩阵的渲染,然后以某种方式在矩阵中实例化适当的预绘制 UIView 的副本。

我考虑将 UIView 捕获为 UIImage,制作 UIImage 的副本并实例化此副本。不过我想知道,如果这个过程的开销使它没有明显快于 drawRect。

有人可以指出通过在二维矩阵中重用 UIView 来优化速度的最佳做法吗?

【问题讨论】:

  • 作为一个实验,我用简单的 UIImageViews 替换了 drawrect 覆盖。速度非常快,以至于在这种情况下我可能会完全放弃绘图方法......尽管我确实喜欢能够以编程方式调整绘图(例如笔划宽度)的灵活性。

标签: uiview drawrect


【解决方案1】:

此问题的快速解决方法是启用不需要进一步更新的给定 UIView 的 shouldRasterize 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    相关资源
    最近更新 更多