2010-12-10 17 views
4

Je peux mettre à jour detailTextLabel.text et UITableViewCell affiche les modifications à l'exécution, mais si j'essaie de mettre à jour imageView.image, cela ne change pas l'image visible. Une idée de pourquoi? J'ai essayé d'appeler un rafraîchissement sur UITableViewCell spécifiquement mais en vain.UITableViewCell Image non mise à jour

-(void)getImageForURL:(NSURL*)url row:(UITableViewCell*)cell { 

    UIImage*image; 

    image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]; 

    cell.imageView.image = image; // Does not work.. 
    cell.detailTextLabel.text = @"test"; // Works 

} 

Répondre

1

Assurez-vous que le style de cellule est UITableViewCellStyleDefault, car les autres types de cellules peuvent toujours renvoyer nil imageView au lieu d'en créer un à la demande.

+0

C'est. Je place un graphique d'espace réservé en appelant cette fonction dans un premier temps pour remplacer l'espace réservé dans le groupe de ressources. –

+0

Avez-vous, par hasard, réinitialisé l'image à l'espace réservé dans votre rappel de source de données? Peut-être, l'image téléchargée n'est pas ce que vous attendez? Vérifiez sa taille et ses propriétés CGImage, puis. Juste pour les coups de pied, vérifiez également la valeur de cell.imageView.image avant et après l'affectation. – Costique

0

Vérifiez si l'image est nulle ou non. Si ce n'est pas le cas, l'image n'est pas récupérée correctement dans l'URL.

+0

Il ne retourne pas un zéro. –

21

Essayez d'appeler [cell setNeedsLayout] après avoir défini l'image, s'il s'agit de la première image que vous définissez pour la cellule.