Frage

Ich habe eine UITableView, die ich über JSON bin Laden. Also meine Logik geht so:

  1. Holt den JSON (NSOperation, ruft zurück zur Hauptthread)
  2. In Rückruf, analysieren die json, und neue Daten in Datenquellen-Array meinen Tisches legen.
  3. Rufen Sie reload auf dem Tableview die neuen Daten zu zeigen.

Meine Frage ist: Wie kann ich die Ankunft der neuen Zeilen in der Tabelle Animieren? Im Moment habe ich sie einfach alle knallt in Existenz auf einmal, und was ich tun möchte, ist sie in Platz machen animieren, denn das sieht viel cooler.

Ich denke, was ich verwenden möchte ist:

 [self.theTableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationRight];

Aber das gibt mir Laufzeit Beschwerden über die Größe des Updates unterschiedlich ist als die Größe in der Datenquelle.

Fehle ich etwas darüber, wie diese Methode verwendet werden soll? Kennt jemand ein Beispiel, wo jemand Animieren neue Zeilen in eine Tableview über dieses Muster?

Update: Grundsätzlich Ich löste dies dank Ben Führung, mit dem folgenden Ansatz:

  1. Starten Sie mit [self.theTableView beginUpdates];
  2. Wenn ich eine Schleife über meine Einträge in der JSON, sie am Anfang meiner Array einfügen, dessen Index jedes Mal durch die Schleife erhöht wird.
  3. Rufen insertRowsAtIndexPath jedes Mal durch die Schleife, wie folgt aus:

    NSIndexPath * indexPath;             indexPath = [NSIndexPath indexPathForRow: [self.theChatEntries IndexOfObject: message] insection: 0];             [Self.theTableView insertRowsAtIndexPaths: [NSArray arrayWithObject: indexPath] withRowAnimation: NO];

  4. Ende mit EndUpdates außerhalb der Schleife.

Woot.

War es hilfreich?

Lösung

Sie sind auf dem richtigen Weg; Sie benötigen, um Ihre Anrufe zu -insertRowsAtIndexPaths einzuwickeln: withRowAnimation. mit einem [self.theTableView beginUpdates] und [self.theTableView EndUpdates]

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top