Quelqu'un peut-il m'aider avec le problème d'animation UITableView
?
Par défaut, nous avons une animation pour supprimer les cellules et réorganiser les cellules dans UITableView
.
Pouvons-nous avoir une cellule d'animation ajoutée, si oui, comment le faire.
J'ai vérifié Three2, je n'ai pas compris comment Twitter
a fait l'animation de développement de la table sous MyProfile> ReTweets.
Vous voulez l'essayer sans Three20 frameowrk,
en utilisant l'animation existante dans UITableView
.
Vous pouvez utiliser la méthode UITableView suivante:
- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
Exemple avec self.dataSource étant un tableau mutable et votre table ayant seulement 1 section:
[self.dataSource addObject:@"New Item"];
NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:[self.dataSource count]-1 inSection:0];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
Remarque: soustrait 1 du nombre de sources de données car NSIndexPath est indexé zéro.
Exemple de tableau qui est la source de données pour la vue de table
var myArray = ["Cow", "Camel", "Sheep", "Goat"]
Ce qui suit ajoutera une ligne avec animation en haut de la vue de table.
// add item to current array
myArray.insert("Horse", atIndex: 0)
// insert row in table
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Fade)
Mises à jour multiples
Si vous devez effectuer plusieurs insertions et/ou suppressions, entourez-les de beginUpdates()
et endUpdates()
.
tableView.beginUpdates()
tableView.insertRowsAtIndexPaths([addIndexPath1, addIndexPath2, ...], withRowAnimation: .Fade)
tableView.deleteRowsAtIndexPaths([deleteIndexPath1, deleteIndexPath2, ...], withRowAnimation: .Fade)
tableView.endUpdates()
Lectures complémentaires
Utilisez reloadRowsAtIndexPaths: indexPath
tableView.beginUpdates()
[tableView reloadRowsAtIndexPaths:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
tableView.endUpdates()
j'espère que cela t'aidera..