2010-09-16 47 views
0

我正在爲地圖應用編碼iPhone,就像谷歌地圖一樣,但帶有我自己的地圖。如何加速drawRect?

我到目前爲止工作,但可悲的是,比我想要的慢。

我基本上圖形中每個drawRect正確地圖圖塊:
[image drawAtPoint:CGPointMake(x, y)];

X和Y在每次調用計算至drawRect
(這些Calcs(計算)是不是很昂貴)。

一次繪製的圖像的最大數量是4.
每張圖像是512 x 512

我覺得這裏缺少某種優化。

任何人都可以幫忙嗎?
謝謝大家。

回答

1

爲什麼不爲每個tile創建UIImageView對象?

,而不是畫在每個的drawRect圖像,只需移動的UIImageView到正確的位置在layoutSubviews

的的UIImageView將處理繪圖時,它需要和將緩存它繪製矩形。每次調用drawRect時,都會重新渲染每個圖像。

當您製作UIImageView對象時,權衡可能會消耗更多的內存,但是您可以找到一個方案來發布不需要顯示的內容。

+0

這真的有助於提高速度,謝謝! 但即便如此,我發現谷歌地圖是比我更流暢... 他們是怎麼做到的? – Tsimmi 2010-09-17 11:27:24

+0

它可能是所有的處理觸摸 - 谷歌地圖上,如果你拖動地圖,並放手,地圖滑到停止,這可能有助於使它感覺更順暢。他們還會預先加載一些圖像 - 即不是隻加載4箇中心圖像,而是也加載12個圖像,以便無縫滑動。他們還會將圖像加載到後臺線程,並在加載時淡入其中。 – deanWombourne 2010-09-17 12:08:42

1

查找Apple的開發人員關於使用平鋪滾動視圖的注意事項。它可能會自動做你想做的。