J'ai un UITableView que je charge via JSON. Donc, ma logique va comme ceci:UITableView mise à jour via JSON, animation Insertion de ligne
- Fetch JSON (NSOperation, rappel au thread principal)
- En rappel, parser le JSON, et insérer de nouvelles données dans mon tableau de tableau source de données.
- Appelez reloadData sur TableView pour afficher les nouvelles données.
Ma question est: Comment puis-je ANIMER l'arrivée de nouvelles lignes dans la table? En ce moment, je les ai tous créés à la fois, et ce que je veux faire, c'est les animer, parce que ça a l'air bien plus cool.
Je pense que ce que je veux est d'utiliser:
[self.theTableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationRight];
Mais cela me donne l'exécution des plaintes au sujet de la taille de la mise à jour étant différente de la taille de la source de données. Ai-je manqué quelque chose sur la façon dont cette méthode devrait être utilisée? Est-ce que quelqu'un sait d'un exemple où quelqu'un est l'animation de nouvelles lignes dans un TableView via ce modèle?
Mise à jour: En fait, je l'ai résolu ceci grâce à la direction de Ben, l'approche suivante:
- Commencez par [self.theTableView beginUpdates];
- Lorsque je boucle sur mes entrées dans le JSON, insérez-les au début de mon tableau, en incrémentant leur index à chaque fois à travers la boucle.
Appel insertRowsAtIndexPath chaque fois à travers la boucle, comme ceci:
NSIndexPath * indexPath; indexPath = [NSIndexPath indexPathForRow: [self.theChatEntries indexOfObject: message] inSection: 0]; [self.theTableView insertRowsAtIndexPaths: [NSArray arrayWithObject: indexPath] avecRowAnimation: NO];
Terminer avec endUpdates en dehors de la boucle.
Woot.
J'ai essayé cela mais quand j'obtiens la toute première ligne du JSON, il se bloque avec ceci: 'Mise à jour invalide: nombre de lignes invalides dans la section 0. Nombre de lignes contenues dans une section existante après la mise à jour (1) doit être égal au nombre de lignes contenues dans cette section avant la mise à jour (0), plus ou moins le nombre de lignes insérées ou supprimées de cette section (0 inséré, 0 supprimé). ' – Genericrich
Accepté pour me diriger sur la bonne voie. Mise à jour de la question pour la postérité. Merci! – Genericrich