76 votes

Comment recharger et animer une seule cellule / ligne UITableView?

Comment puis-je recharger et animer une seule cellule / ligne? En ce moment je télécharge des fichiers. Chaque fois que le téléchargement d’un fichier est terminé, j’appelle son délégué terminé et j’appelle [tableview reload]. Mais alors la table entière se recharge. Et comment puis-je animer la table pour qu'elle ne clignote pas? Par exemple, un effet de fondu ou plus.

salue Max

188voto

James Bedford Points 10691

Utiliser les éléments suivants UITableView méthode d'instance:

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

Vous devez spécifier un NSArray de NSIndexPaths que vous souhaitez recharger. Si vous voulez juste pour recharger. Si vous ne voulez recharger un cellulaire, alors vous pouvez fournir un NSArray qui ne possède qu'un seul NSIndexPath. Par exemple:

NSIndexPath* rowToReload = [NSIndexPath indexPathForRow:3 inSection:0];
NSArray* rowsToReload = [NSArray arrayWithObjects:rowToReload, nil];
[UITableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];

Vous pouvez voir l' UITableViewRowAnimation enum pour toutes les façons d'animer la ligne d'actualisation. Si vous ne voulez pas de l'animation, alors vous pouvez utiliser la valeur UITableViewRowAnimationNone, comme dans l'exemple.

Le rechargement des lignes spécifiques a un plus grand avantage que de simplement obtenir l'effet d'animation que vous souhaitez. Vous bénéficiez également d'un énorme gain de performance parce que seules les cellules que vous avez vraiment besoin d'être rechargé sont ont leur de données actualisées, repositionné et redessiné. Selon la complexité de vos cellules, il peut être tout à fait une surcharge chaque fois que vous actualisez une cellule, afin de réduire le montant de l'actualise vous faites, c'est un besoin d'optimisation que vous devez utiliser dans la mesure du possible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X