2010-02-22 8 views

risposta

7

Importante: questa risposta presuppone iPhone OS 3.x. See the answer above per iOS 5.x

Non so quale sia l'effetto di animazione "cool" proprio come nell'app Elenco di spesa. Non tutti hanno quell'app.


Le righe non possono essere spostate a livello di codice.

Tuttavia, è possibile inserire ed eliminare contemporaneamente una riga per simulare uno spostamento.

[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'effetto stavo parlando è un'animazione fila che rientrano, solo come trascinarlo con un dito quando un tavolo è in modalità riorganizzata. Mi chiedo come è stato fatto. Penso a disegnare il contenuto della cella in uiimage semi trasparente e quindi spostare l'immagine con animazione nella posizione desiderata, ma non sono sicuro che sia la soluzione migliore – Alex

+0

Hai trovato una soluzione? Ho una domanda simile: 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

forse hai solo bisogno di RowAnimation effetto per: UITableViewRowAnimationBottom – ugiflezet

2

Questo è un po 'simile a quello che ho fatto per consentire il drag and drop da una scrollview all'altra.

Si vorrà creare una cella duplicata/fittizia (per effetto visivo), quindi rimuovere la cella originale, quindi animare il duplicato, quindi inserire nella parte inferiore e infine rimuovere la cella duplicato/fittizio.

26

In IOS 5 questo può essere fatto con l'UITableView selettore seguente:

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

Ad esempio:

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

fantastico! link al selector doc: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006943-CH3-SW55 – yonel

+0

L'ovvio domanda successiva è come capire questi indexPath dopo l'ordinamento di un array ...? Forse dovrei fare una copia ordinata della matrice e capire gli indici prima e dopo di ogni elemento? – devios1

Problemi correlati