如何加速drawRect?

时间:2010-09-16 16:42:03

标签: iphone

我正在为 iPhone 编写地图应用程序,例如Google地图,但使用我自己的地图。

到目前为止,我的工作正在进行,但遗憾的是,比我想要的要慢。

我基本上在每个drawRect中绘制正确的地图图块:
[image drawAtPoint:CGPointMake(x, y)];

在每次调用drawRect时计算X和Y (这些计算不是很贵)。

一次绘制的最大图像数为4 每张图片均为512 x 512

我觉得这里缺乏某种优化。

任何人都可以帮忙吗? 谢谢大家。

2 个答案:

答案 0 :(得分:1)

为什么不为每个磁贴创建UIImageView对象?

无需在drawRect中绘制每个图像,只需将UIIMageView移动到layoutSubviews中的正确位置

UIImageView将在需要时处理绘图,并将其缓存为绘制的rect。每次调用drawRect时,您都会重新渲染每个图像。

当您制作UIImageView对象时,权衡可能会消耗更多内存,但如果需要,您可以找到一个方案来释放未显示的方案。

答案 1 :(得分:1)

查看Apple关于使用平铺滚动视图的开发人员说明。它可以自动执行您想要的操作。