Iphone 如何加速drawRect?

Iphone 如何加速drawRect?,iphone,Iphone,我正在为iPhone编写一个地图应用程序,就像谷歌地图一样,但有我自己的地图 到目前为止,我所做的是工作,但遗憾的是,比我想要的慢 我基本上是在每个drawRect中绘制正确的地图分幅: [图像绘制点:CGPointMake(x,y)] 在每次调用drawRect (这些计算器不是很贵) 一次绘制的最大图像数为4。 每个图像都是512 x 512 我觉得这里缺少某种优化 有人能帮忙吗? 谢谢大家。为什么不为每个磁贴创建UIImageView对象 只需将UIIMageView移动到LayoutSu

我正在为iPhone编写一个地图应用程序,就像谷歌地图一样,但有我自己的地图

到目前为止,我所做的是工作,但遗憾的是,比我想要的慢

我基本上是在每个
drawRect
中绘制正确的地图分幅:
[图像绘制点:CGPointMake(x,y)]

在每次调用
drawRect

(这些计算器不是很贵)

一次绘制的最大图像数为4。
每个图像都是
512 x 512

我觉得这里缺少某种优化

有人能帮忙吗?

谢谢大家。

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

只需将UIIMageView移动到LayoutSubView中的正确位置,而不是在drawRect中绘制每个图像

UIImageView将在需要时处理绘图,并将缓存其绘制的矩形。每次调用drawRect时都要渲染每个图像


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

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

这确实有助于提高速度,谢谢!但即便如此,我发现谷歌地图比我的要流畅得多。。。他们是如何做到的?这可能完全取决于如何处理谷歌地图上的触摸——如果你拖动地图并放开它,地图会滑动到一个停止点,这样可能有助于让它感觉更平滑。他们还将预加载一些图像-即,不只是加载4个中间图像,他们还将加载12个中间图像,以便无缝滑动。他们还将在背景线程上加载图像,并在加载时使其淡入淡出。