ios UITableView ajouter une animation de cellule



iphone cocoa-touch (3)

Quelqu'un peut-il m'aider avec le UITableView animation UITableView ?

Par défaut, nous avons une animation pour supprimer des cellules et réorganiser des cellules dans UITableView .

Pouvons-nous animer l'ajout de cellule, si oui, comment le faire?

J'ai vérifié Three20 , n'ai pas compris comment twitter a fait la table, développez l'animation sous MyProfile> ReTweets .

Vous voulez l'essayer sans Three20 frameowrk, utilisant l'animation existante dans UITableView .


Answer #1

Utilisez reloadRowsAtIndexPaths: indexPath

    tableView.beginUpdates()
    [tableView reloadRowsAtIndexPaths:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
    tableView.endUpdates()

J'espère que cela t'aidera..


Answer #2

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: Soustrayez 1 du nombre de sources de données car NSIndexPath est indexé à zéro.


Answer #3

Rapide

Exemple de tableau qui est la source de données pour la vue de table

var myArray = ["Cow", "Camel", "Sheep", "Goat"]

Ce qui suit va ajouter une ligne avec une animation en haut de la vue du tableau.

// 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)

Plusieurs mises à jour

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





animation