2012-11-08 1 views

Répondre

0

Il n'y a pas de solution de facilité. Vous devez gérer l'animation et le mouvement par vous-même. Peut-être que vous pouvez prendre une copie des cellules que vous souhaitez déplacer et montrer une animation de se déplacer vers la destination. Lorsque l'animation s'arrête, changez la source de données.

+0

J'ai fait bouger une cellule avec animation. Mais une question, comment copier la cellule en mouvement vers la destination ??? – Domlin

2

Si vous pouvez demander que les cellules sélectionnées soient contiguës, vous pouvez les tricher en les remplaçant par une seule grande cellule.

EDIT:
Pour noncontiguous, la solution paresseuse serait de laisser l'utilisateur de sélectionner toutes les cellules, puis après glisser-déposer un d'entre eux, il suffit de déplacer toutes les autres cellules sélectionnées juste en dessous.

Vous pouvez expérimenter avec UITableView et voir si elle vous permettra de animez les autres cellules sélectionnées (avec deleteRowsAtIndexPaths:withRowAnimation:) dès que traînage est détectée (éventuellement avec tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath: de UITableViewDelegate). Vous pouvez également voir si cela vous permettra de redessiner/redimensionner la cellule quand elle commencera à glisser - alors vous pourriez faire en sorte qu'elle ressemble à une pile en z ou à un totem qui les place dans une grande cellule tout en les faisant glisser.

Bien sûr, je suppose que toutes les cellules sélectionnées partageront la même position de destination. Je ne peux pas enrouler ma tête autour de sources non-contiguës vers des destinations non-contiguës dans un drag-n-drop. Si l'utilisateur fait glisser 3 créneaux, cela signifie-t-il que vous ajoutez 3 aux positions de toutes les cellules sélectionnées? Et si cela prend une cellule hors limites? Même si vous avez décidé de certaines règles pour des cas bizarres comme ceux-là et que vous avez réellement mis en place cette monstruosité, cela ne pourrait jamais être facile à utiliser.

+0

Mais le contigu est juste un état, il ne peut pas être la solution parfaite. – Domlin

Questions connexes