【发布时间】: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 覆盖。速度非常快,以至于在这种情况下我可能会完全放弃绘图方法......尽管我确实喜欢能够以编程方式调整绘图(例如笔划宽度)的灵活性。