2012-07-01 57 views
1

在UITableView中有一些單元格,每個單元格都有兩個UIImage,我將更新UIImage以獲得性能。但有一個問題,我怎樣才能重新加載UIImageView在單元格中的圖像從Web中拉出。如何在一個UITableView單元/行中異步重載UIImage?

我可以用方法reloadRowsAtIndexPaths重新加載一個完整的單元格,但我只是想知道是否有一個方法只能重新加載UIView對象,這是需要重新加載(即圖像或標籤)細胞。

順便說一句,我發現方法「reloadRowsAtIndexPaths」將執行方法「heightForRowAtIndexPath」的所有單元格時,我只是重新加載一個單元格。有什麼不對的嗎?

回答

0

也許從蘋果的示例代碼LazyTableImages是你想要的。

+0

謝謝。這就是我想要的。 – rotyger

+0

順便說一句,我發現方法「reloadRowsAtIndexPaths」將執行方法「heightForRowAtIndexPath」的所有單元格時,我只是重新加載一個單元格。我對嗎? – rotyger

+0

@rotyger您可以通過在方法中設置斷點來檢查它。 –

0

獲取對您的自定義單元格tableView:cellForRowAtIndexPath:的引用。然後更新其圖像屬性運行此:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 
    NSData *imageData = [NSData dataWithContentsOfURL:someURL]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     cell.someImage = [UIImage imageWithData:imageData]; 
    }); 
}); 

您將最多同時加載6個圖像,因爲這是NSURLConnection的限制。

相關問題