iOS UITableView reloadRowsAtIndexPaths
J'ai un UITableview paresseux charge les images de toutes les différentes tailles. Lorsqu'une image est chargée, j'ai besoin de mettre à jour la cellule spécifique, de sorte que j'ai compris j'ai besoin d'utiliser reloadRowsAtIndexPaths. Mais quand j'utilise cette méthode, il appelle encore les heightForRowAtIndexPath méthode pour chaque cellule. Je pensais que le but entier de reloadRowsAtIndexPaths est qu'il ne appel heightForRowAtIndexPath pour la ligne spécifique vous le préciser?
Aucune idée pourquoi?
[self.messageTableView beginUpdates];
[self.messageTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:count inSection:0]] withRowAnimation:UITableViewRowAnimationNone];
[self.messageTableView endUpdates];
Merci
source d'informationauteur Jesse
Vous devez vous connecter pour publier un commentaire.
endUpdates
les éléments déclencheurs de la taille du contenu du nouveau calcul, ce qui nécessiteheightForRowAtIndexPath
. C'est juste la façon dont il fonctionne.Si c'est un problème, vous pourriez tirer votre cellule de la configuration de la logique de l'extérieur de
cellForRowAtIndexPath
et reconfigurer la cellule directement sans passer parreloadRowsAtIndexPaths
. Voici un schéma de base de ce que cela pourrait ressembler à:Alors, où que vous êtes en train d'appeler
reloadRowsAtIndexPaths
vous le faites à sa place, etheightForRowAtIndexPath
ne sera pas appelé: