Ich habe eine Tabellenansicht mit zwei Reihen in einem Abschnitt, dhWie sollte in einer iOS-Tabellenansicht eine Zeile in einen neuen Abschnitt verschoben werden?
---
Row A
Row B
Wenn ich will, Reihe 1 in einen neuen Abschnitt animieren, dh das Sein Ergebnis:
---
Row B
---
Row A
wie sollte diese erreicht werden? Was habe ich schon versucht ist:
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow: 0 inSection: 0]] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView insertSections:[NSIndexSet indexSetWithIndex: 1] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
jedoch in iOS 8 zumindest, beseelt die Reihe, aber dann wird der neue Abschnitt ist un-übertragene (dh weiß, keine untere Reihe Grenze) bis einige Zeit nach, wenn etwas löst ein Redraw aus und es kommt zurück.
[self.tableView beginUpdates];
[self.tableView moveRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] toIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]];
[self.tableView endUpdates];
, die eine Ausnahme aufwirft:
Invalid update: invalid number of sections. The number of sections contained in the table view after the update (2) must be equal to the number of sections contained in the table view before the update (1), plus or minus the number of sections inserted or deleted (0 inserted, 0 deleted).
Und:
[self.tableView beginUpdates];
[self.tableView insertSections:[NSIndexSet indexSetWithIndex: 1] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView moveRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] toIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]];
[self.tableView endUpdates];
, die die Ausnahme auslöst:
cannot move a row into a newly inserted section (1)
Soll ich überhaupt nur nicht animieren und laden die ganze Tabelle?
Vielleicht besser, die Datenschicht mit der Ansichtsebene zu trennen. I.e. Laden Sie Ihre Daten mit entworfenen Datenquelle, vielleicht 2-D-Array, dann ändern Sie das Array und rufen Sie tableView.Reload – zcui93