我一直在繪製自定義表格單元格(使用蘋果的樣本作爲基礎),現在必須做一個顯示來自URL的圖像的單元格 - 每個單元格將具有不同的圖像(基於某些數據它有),但所有的單元格是相同的,所以相同的重用ID。iPhone自定義繪製的UITableViewCell,如何加載+插入網頁中的圖像在線程中?
這樣做的正確結構是什麼?很明顯,我需要在新線程中加載圖像。我有以下功能到目前爲止坐在細胞查看它在自己的線程運行的類:
- (void)loadImage
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
self.img = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: [myProduct objectForKey:@"ImagePath"]]]];
[self setNeedsDisplay];
[pool release];
}
當我把這個從drawRect中函數本身(這是壞的),那麼它「作品」,但每當發生任何事情時(選擇等),這顯然都會被調用。如果我把它放在單元格uiview的init函數中,那麼它只會被前面8個單元調用,然後它們會被重用。其他的變化最終導致圖像在重用時沒有得到「重置」,所以相同的8張圖像在表格中重複(儘管其他文本更新)。
我暫時不擔心緩存,但是有沒有關於如何做到這一點的任何示例,或者任何人都可以指向正確的方向?謝謝。
我該如何處理線程位?我可以調用cellforrowatindexpath中的線程去獲取圖像,但是在那個時候,細胞已經繪製了自己(減去圖像),然後我需要再次在細胞視圖上調用setNeedsDisplay? – Tom 2009-11-15 17:49:23