2010-10-08 69 views
1

我期待到蘋果ScrollViewSuite和Photoscroller,我不知道如何通過一個NSURLConnection的下載切片時實現CATiledLayer: 我怎麼通知的drawRect:一個特定的瓷磚已被下載,我如何跟蹤與每個磁貼關聯的反應和上下文?下載磚用於CATiledLayer與NSURLConnection的

問候弗雷德裏克

+0

好,請,一回答,我相信你們... – Fredrik 2010-10-19 06:30:56

回答

0

我的事情有隻是沒有辦法,因爲它應該工作,其他方式這樣做。瓷磚在分開的線程中呈現,因此您可以從drawLayer:InContext:方法開始下載瓷磚。當然,不要忘記爲已下載的磁貼執行緩存操作,否則您將同時殺死您的應用程序和您的發票:-)

2

當您完成下載時,緩存結果,然後調用setNeedsDisplayInRect:with tile的矩形。它會再次調用drawLayer:inContext:,然後可以繪製緩存的結果。

0

沒有辦法從平鋪圖層中獲取必要的信息。目前我只是每隔幾秒對圖層進行一次無效/重繪,以獲得某種「最終一致性」。也就是說,在某個時間點,我希望所有可見的圖塊都被加載並緩存(通過我自己的控制器)。然後重繪將使用我的緩存中的圖像簡單渲染所有圖塊。

爲了達到這個目的,你需要能夠計算可見瓦片的集合,並且如果它們沒有被緩存(重新)下載它們。這種方法具有讓我取消不再可見的拼貼的連接的巨大好處。它允許地圖最終從連接/服務器錯誤等中恢復。

的瓷磚層將需要輸出大量的內部的,如果你想從這個「投票」的方式,像這瓷磚已緩存,它是目前感興趣的路程。