In welcher Reihenfolge werden Zeileneinfügungen / Löschungen in UITableView durchgeführt?

8

Mit UITableView können Sie Bearbeitungsvorgänge im Stapel bearbeiten, indem Sie beginUpdates und endUpdates verwenden.

Meine Frage ist: Muss ich zuerst wissen, ob es Löschungen oder Einfügungen macht? Oder kann ich auf alles anhand des Indexpfads vor beginUpdates verweisen und es wird auf magische Weise funktionieren?

Angenommen, ich habe eine Tabelle:

%Vor%

Ich möchte es in:

verwandeln %Vor%

Also habe ich B gelöscht (was bei 0,1 lag) und H eingefügt (das nach D - bei 0,4 vor den Löschungen oder nach 0,3 eingefügt wurde).

Also, zwischen meinen Anfangs- / Endeaktualisierungsaufrufen, welche von diesen wird funktionieren?

  1. deleteRowsAtIndexPaths: 0,1, gefolgt von insertRowsAtIndexPaths: 0,4
  2. deleteRowsAtIndexPaths: 0,1, gefolgt von insertRowsAtIndexPaths: 0,3
  3. insertRowsAtIndexPaths: 0,4, gefolgt von deleteRowsAtIndexPaths: 0,1
  4. insertRowsAtIndexPaths: 0,3, gefolgt von deleteRowsAtIndexPaths: 0,1
Amy Worrall 03.08.2011, 13:30
quelle

1 Antwort

8

Die entsprechende Apple-Dokumentation hierzu finden Sie unter Bestellung von Operationen und Indexpfaden .

  

Löschen und erneutes Laden in einem Animationsblock legen fest, welche Zeilen und Abschnitte in der ursprünglichen Tabelle entfernt oder erneut geladen werden sollen. Einfügungen geben an, welche Zeilen und Abschnitte zur resultierenden Tabelle hinzugefügt werden sollen. Die Indexpfade, die zum Identifizieren von Abschnitten und Zeilen verwendet werden, folgen diesem Modell.

Die Tabellenansicht führt also zuerst alle Lösch- oder Aktualisierungsoperationen aus, deren Indexpfade auf Indexpfade im ursprünglichen Tabelleninhalt verweisen. Dann werden Einfügungen durchgeführt, und diese Indexpfade verweisen auf Indexpfade , nachdem Löschungen aufgetreten sind.

Also sollte theoretisch Ihre Nummer "2" die gewünschte Option sein.

    
Mike Weller 03.08.2011, 13:55
quelle

Tags und Links