2010-02-22 7 views

Antwort

7

Wichtig: Diese Antwort setzt iPhone OS 3.x voraus. See the answer above für iOS 5.x

Ich weiß nicht, was „-Effekt kühle Animation wie in Grocery Einkaufsliste app“ das ist. Nicht jeder hat diese App.


Zeilen können nicht programmgesteuert verschoben werden.

Sie können jedoch gleichzeitig eine Zeile einfügen und löschen, um eine Bewegung zu simulieren.

[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, Die Wirkung ich sprach eine fallende Reihe Animation, nur wie das Ziehen mit dem Finger, wenn sich ein Tisch im Neuanordnungsmodus befindet. Ich frage mich, wie es gemacht wurde. Ich denke darüber nach, den Zelleninhalt in halbtransparentes uiimage zu zeichnen und dann das Bild mit Animation an den gewünschten Ort zu verschieben, aber ich bin mir nicht sicher, ob das die beste Lösung ist. – Alex

+0

Sie finden eine Lösung? Ich habe eine ähnliche Frage: http://stackoverflow.com/questions/5112588/how-make-the-same-animation-like-uitableview-reorder-of-cells & http://stackoverflow.com/questions/5315990/ how-copy-cells-zwischen-Tabellen-als-die-Puls-App – mamcx

+0

vielleicht müssen Sie nur RowAnimation-Effekt zu: UITableViewRowAnimationBottom – ugiflezet

2

Dies ist irgendwie ähnlich zu dem, was ich getan habe, um Drag & Drop von einem Scrollview zum anderen zu ermöglichen.

Sie möchten eine Duplikat/Dummy-Zelle (für den visuellen Effekt) erstellen, dann die ursprüngliche Zelle entfernen, dann das Duplikat animieren, dann in den unteren Bereich einfügen und schließlich die Duplikat/Dummy-Zelle entfernen.

26

In IOS 5 kann dies mit dem folgenden UITableView Selektor erfolgen:

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

Zum Beispiel:

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

großartig! Link zum Selektor doc: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006943-CH3-SW55 – yonel

+0

Das ist offensichtlich Follow-up-Frage ist, wie diese IndexPaths nach dem Sortieren eines Arrays ... herauszufinden? Vielleicht sollte ich eine sortierte Kopie des Arrays machen und die Vorher-Nachher-Indizes jedes Elements herausfinden? – devios1

Verwandte Themen