UITableView neu laden Abschnitten, um Fragen zu klären?

Ich versuche zu verstehen, warum es scheint egal, in welcher Reihenfolge ich die reload-Teile in meinem UITableView

Wenn ich neu laden wie diesem:

//Reload section 1
[self.groupDetailsTableView reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationFade];

//Reload section 0
[self.groupDetailsTableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];

Es ist kein Problem, aber wenn ich laden Sie in umgekehrter Reihenfolge vor (Abschnitt 0 zunächst und dann Abschnitt 1) bekomme ich eine Fehlermeldung:

* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Ungültiges update: ungültige Anzahl von Zeilen, die in Abschnitt 1. Die Anzahl der Zeilen, die in einer bestehenden Abschnitt nach dem update (2) muss gleich sein der Anzahl der Zeilen in diesem Abschnitt, bevor Sie das update (1), plus oder minus die Anzahl der Zeilen, die eingefügt oder gelöscht, der Abschnitt (0 eingefügt, gelöscht 0) und plus oder minus die Anzahl der Zeilen bewegt, die in oder aus diesem Abschnitt (0 verschoben, 0 verschoben).'

Aber Wenn ich es so mache, ist es kein Fehler:

[self.groupDetailsTableView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 2)] withRowAnimation:UITableViewRowAnimationFade];
  • Wenn die Anzahl der Elemente in Abschnitt 0 geändert, würden Sie sehen, genau das Verhalten, das Sie beschreiben. Sie können nicht aktualisieren, Abschnitt 1, wenn Abschnitt 0 Datenquelle Antworten, die nicht mit der Tabelle. Sollten Sie reloadSections für alle Abschnitte mit den änderungen an der gleichen Zeit. Entweder das, oder das einfügen und entfernen von Zeilen, wie Sie entlang gehen.
InformationsquelleAutor Peter Warbo | 2013-06-04
Schreibe einen Kommentar