UITableView Animation Des Maux De Tête
NSIndexPath* updatedPath = [NSIndexPath indexPathForRow: 0 inSection: 0];
NSIndexPath* updatedPath2 = [NSIndexPath indexPathForRow: 1 inSection: 0];
NSArray* updatedPaths = [NSArray arrayWithObjects:updatedPath, updatedPath2, nil];
[self.mySexyTableView reloadRowsAtIndexPaths:updatedPaths withRowAnimation:UITableViewRowAnimationTop];
Le code ci-dessus fonctionne, et il s'anime. Le problème est que j'ai beaucoup de données et je ne veux pas coder en dur la ligne d'index. Depuis que j'ai qu'un seul article dans mon tableau de la section peut être 0. Comment puis-je générer dynamiquement NSArray de NSIndexPath objets?
Ou est-il un moyen plus facile pour animer la vue de la table. Toutes les lignes dans ma table la modification de l'affichage lorsque l'utilisateur clique sur l'onglet en haut de la vue de la table.
OriginalL'auteur bparanj | 2009-07-08
Vous devez vous connecter pour publier un commentaire.
Pour générer le tableau de l'indice des chemins, vous avez juste à boucle:
Si vous rechargez toutes les données de votre TableView, pourquoi ne pas simplement appeler le reloadData méthode?
Lorsque j'exécute ton code j'obtiens ceci : *** l'échec d'Assertion dans -[_UITableViewUpdateSupport _setupAnimationsForNewlyInsertedcells], /SourceCache/UIKit/UIKit-963.10/UITableViewSupport.m:541 2009-07-08 09:14:42.979 QuartzFun[3781:207] *** fin de l'app en raison de uncaught exception 'NSInternalInconsistencyException', la raison: "Tentative de créer deux animations pour la cellule' 2009-07-08 09:14:42.979 QuartzFun[3781:207] la Pile: (
Si je boucle : NSMutableArray updatedPaths = [[NSMutableArray alloc] init]; for (int i = 0; i < [lowList count]; i++) { NSIndexPath *updatedPath = [NSIndexPath indexPathForRow:je inSection:0]; [updatedPaths addObject:updatedPath]; } [auto.mySexyTableView reloadRowsAtIndexPaths:updatedPaths withRowAnimation:UITableViewRowAnimationTop]; - je obtenir: *** fin de l'app en raison de uncaught exception 'NSRangeException', la raison: '** -[NSMutableIndexSet addIndexesInRange:]: {214747, 1} dépasse maximum de la valeur de l'indice de NSNotFound - 1' QuartzFun[3810:207]
Vous pouvez essayer si cela fonctionne pour seulement 5 lignes ou quelque chose? Dans la boucle for, incrémenter un compteur, et quand il frappe 5, pause. Ça marche alors?
OriginalL'auteur drvdijk
Si vous voulez vous rafraîchir une section entière:
OriginalL'auteur ccjensen
Si vous avez plus d'un indexPathForRow avec l'égalité des index de ligne, vous bénéficiez de cette exception.
Pour erample
OriginalL'auteur
J'ai enfin réussi à le faire fonctionner. Voici le code:
Le problème était que j'étais de retour dur de la valeur codée de numberOfRowsInSection: méthode qui n'était pas le même que mySexyList taille. Cela faisait planter l'application.
OriginalL'auteur bparanj
Assumer
self.arTableData
est une mutable tableau de la table &tableView
est une instance deUITableView
. Supposons qu'il y ait 10 lignes ( ce qui signifie 10 objets dans un tableau ) danstableView
.Je n'en œuvre code suivant pour supprimer des lignes d'animation.
Cette astuce fonctionne pour moi sans aucun tracas. Espérons qu'il travail pour vous. Le meilleur de la chance.
OriginalL'auteur Sagar R. Kothari
Juste pour ajouter ma solution dans le mélange que c'était simple, une fois que je l'ai trouvé. Ce qui se produit est que j'ai une table qui est "regroupés" par mon propre code à l'aide de la même technique trouvée sur: cocoanetics.com
Lorsque l'utilisateur fait quelque chose nécessitant une mise à jour de cellule, et la table n'était pas regroupés à l'époque, mon code a été d'essayer d'utiliser
spécification de chemins d'accès à la cellule et de l'inexistant en-tête. Cela a provoqué la même erreur d'autres utilisateurs ont signalé ci-dessus. Tout ce que j'avais à faire était de s'assurer que les "chemins" pour reloadRowsAtIndexPaths:withRowAnimation: réellement existé. C'est chose faite, tout était bien.
OriginalL'auteur PKCLsoft