2009-11-03 62 views
0

背景: 我有一個UITableView顯示每個單元格中的圖像。這些圖像都是大pdf文件的一部分。所以我所做的實際上是在這些UITableViewCells中渲染小的pdf部分,每個單元格只顯示一個部分。因此,我將UIView添加到單元格的內容視圖並按需呈現視圖。 渲染這些PDF部分是昂貴的,每個需要大約0.2秒(僅繪製Pdf部分),這會降低表格的滾動速度。如何在UITableView中實現類似UIImageView的延遲加載

想法: 現在,我知道可能有解決方案,當我看UIImage如何呈現基於URL的圖像。如果您基於url創建UIImage,則會以某種方式延遲這些圖像。例如看看iTunes應用程序。 平滑滾動是可能的,每個圖像都顯示爲未渲染,並在渲染完成後順利出現。

問題:如何在上面描述的UITableViewCell中渲染昂貴的渲染,以某種方式顯示單元延遲?有沒有人有個想法,Apple如何在UIImageView中解決它?

在此先感謝

丹尼爾

回答

0

這是(大部分)複製的Lazy load images in UITableViewCell。檢查那裏的鏈接和例子。

總之,你需要的是產生一個單獨的線程用於加載PDF縮略圖,然後該線程通過生成的圖像發送回主線程。這很容易通過使用performSelectorInBackground:withObject:performSelectorOnMainThread:withObject:waitUntilDone:方法完成。

+0

嗨 感謝提示重複消息。我沒有看到它。 解決方案雖然不滿足我。如果你認爲內存消耗大,我必須在_advance_中建立多少緩存。我的圖像和整個屏幕一樣大。 我剛剛找到了一個解決方案,看起來非常有前途:我使用CATiledLayer!如果您在圖層中委託繪圖,則所有後臺線程均由系統完成。您只需將圖形從視圖移至圖層即可。 – user201631 2009-11-03 19:38:30

+0

你能提供一個這樣的例子嗎? – Jordan 2009-11-03 23:13:51