2010-08-12 5 views
0

J'essaie d'utiliser la technique MikeJ's pour charger des images dans un TableViewCell de manière asynchrone. Cependant, je suis confronté à un problème. Les images se chargent d'accord pour moi, mais quand je fais défiler la liste, les cellules qui n'ont pas encore l'image chargée montreraient une image erronée jusqu'à ce que l'image correcte soit récupérée. J'ai percé sur le problème de la partie où je retire l'ancienne vue de l'image de la cellule (ce qui est à l'intérieur de la tableView: cellForRowAtIndexPath: méthode):removeFromSuperView ne fonctionne pas?

image = (AsyncImageView *)[cell viewWithTag:0]; 
... 
NSLog(@"\tremoving from superview: %@", image); 
[image removeFromSuperview]; 
NSLog(@"\tviewWithTag: 0 %@", [cell viewWithTag:0]); 

Mon exploitation forestière a montré que removeFromSuperview ne fonctionnait pas: il faisait toujours partie de la cellule après l'appel à removeFromSuperview. Cela provoque l'image erronée devrait dans les autres éléments de la liste. Donc, je suppose que la question est, comment puis-je l'enlever de la cellule?

Répondre

1

0 est la balise par défaut. Je suppose que [cell viewWithTag: 0] renvoie la cellule:

La vue dans la hiérarchie du récepteur qui correspond à la balise. Le récepteur est inclus dans la recherche.

+0

Vous étiez sur, mon frère! Merci! – airportyh