2010-02-22 9 views

Répondre

7

Important: Cette réponse suppose que l'iPhone OS 3.x. See the answer above pour iOS 5.x

Je ne sais pas quel est "l'effet d'animation cool, tout comme dans l'application Grocery Shopping List". Tout le monde n'a pas cette application.


Les lignes ne peuvent pas être déplacées par programme. Toutefois, vous pouvez simultanément insérer et supprimer une ligne pour simuler un déplacement.

[tableView beginUpdates]; 
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:rowToMove] 
       withRowAnimation:UITableViewRowAnimationLeft]; 
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPathToMoveTo] 
       withRowAnimation:UITableViewRowAnimationLeft]; 
// update your dataSource as well. 
[tableView endUpdates]; 
+0

Kenny, L'effet dont je parlais est une animation de ligne tombe, juste comme le faire glisser avec un doigt quand une table est en mode réarrangement. Je me demande comment cela a été fait. Je pense à dessiner le contenu de la cellule en uiimage semi-transparent et ensuite déplacer l'image avec animation dans l'emplacement désiré, mais je ne suis pas sûr que ce soit la meilleure solution – Alex

+0

Vous trouvez une solution? J'ai une question similaire: http://stackoverflow.com/questions/5112588/how-make-the-same-animation-like-uitableview-reorder-of-cells & http://stackoverflow.com/questions/5315990/ how-copy-cells-between-tables-as-the-pulse-app – mamcx

+0

peut-être que vous avez juste besoin de RowAnimation effect pour: UITableViewRowAnimationBottom – ugiflezet

2

C'est un peu semblable à ce que je l'ai fait pour permettre d'un scrollview à l'autre glisser-déposer. Vous voudrez créer une cellule dupliquée/fictive (pour un effet visuel), puis retirez la cellule d'origine, puis animez la copie, puis insérez-la dans la partie inférieure et enfin retirez la cellule dupliquée/factice.

26

Dans iOS 5, cela peut être fait avec le sélecteur UITableView suivant:

- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath 

Par exemple:

[self.tableView moveRowAtIndexPath:indexPath toIndexPath:[NSIndexPath indexPathForRow:[items count] - 1 inSection:1]]; 
+1

génial! lien vers le document de sélection: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006943-CH3-SW55 – yonel

+0

L'évidence question de suivi est de savoir comment comprendre ces indexPaths après le tri d'un tableau ...? Peut-être devrais-je faire une copie triée du tableau et trouver les index avant et après de chaque élément? – devios1

Questions connexes