2010-09-13 63 views
0

我已經設置了自定義單元格的tableview。 customCell是一個類。 繼承人代碼更精確的看法:iphone如何訪問cellForRowAtIndexPath之外的自定義單元格

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

NSManagedObject *object = (NSManagedObject *)[entityArray objectAtIndex:indexPath.row]; 

NSString *cellIdentifier = [NSString stringWithFormat:@"asd%d", indexPath.row]; 

customCell *cell = [[tableView dequeueReusableCellWithIdentifier:cellIdentifier] autorelease]; 
//i tried setting a tag but dunno how to call it afterwards 
    [cell setTag:indexPath.row]; 

if (cell == nil) { 
     NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"customCell" owner:self options:nil]; 
    cell = [topLevelObjects objectAtIndex:0]; 
    } 

if (cell.imagen != nil) { 
    [[cell imageView] setImage:[cell imagen]]; 
} else { /* setup image... */ } 
    } 


    -(void) webImageReady:(WebImage *)downloadedImage imageView:(UIImageView *)imageView cellTag:(NSInteger *)cTag 
    { 
    // This is the part where i want to access cell.imagen, this is actually wrong... 
    [[[imageView.superview viewWithTag:cTag] imagen] setImagen:downloadedImage.Image]; 
    [imageView setImage:downloadedImage.Image]; 

    } 

好的。現在我想從cellForRowAtIndexPath之外的方法訪問(引用)cell.imagen屬性,更精確地說,在選擇器下載完成(委託) 在此先感謝!

回答

0

你不應該參考單元格創建方法之外的單元格,你應該考慮單元格被渲染的情況,但是在獲取圖像時被滾動出來了,甚至可以被其他單元格重用,解決它的一種方法是有圖像視圖數組或類似的東西。

我認爲你應該嘗試使用第三方庫已經做到了(其中包括)稱爲Three20。它有一個對象調用TTImageView獲取一個URL並將其加載到後臺,它解決了所有的情況以及優化的緩存

+0

好吧,試試吧..謝謝 – Nicolas 2010-09-14 22:12:06

+0

即時連接Three20到我的項目有困難,任何幫助將不勝感激。 – Nicolas 2010-09-15 15:34:13

+0

我很樂意提供幫助,無論如何,Three20項目都有完整的幫助。 – 2010-09-15 16:53:26

1

如果圖像被下載,並且在成功下載圖像時執行cellForRowAtIndexPath do [tableview setNeedsDisplay]

+0

實際上,這不起作用,但您可以隨時訪問可見單元格(UItableView visibleCells),而其他單元格將被訪問cellForRowAtIndexPath當它們變得可見時(再次) – 2013-04-03 22:39:51

相關問題