Bei Verwendung von - (void)beginUpdates
und - (void)endUpdates
auf einem UITableView müssen Sie die Änderungen an der Datenquelle innerhalb von Aufrufen vornehmen?UITableView Beginn/Ende Updates
dh
Wenn ich ein NSMutableArray
genannt dataSource
mein Fahr tableView
könnte ich dies tun ...
// edit the actual data first
[dataSource addObject:@"Blah"];
// now update the table
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:dataSource.count - 1 inSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];
Oder ist es notwendig zu tun ...
[self.tableView beginUpdates];
[dataSource addObject:@"Blah"];
[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:dataSource.count - 1 inSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];
Nur Ich frage, weil ich ein paar Orte habe, an denen ich mich aktualisiere, und ich könnte möglicherweise den gemeinsamen Code zu einer Funktion herausnehmen.
Aber nur wenn ich außerhalb der Update-Aufrufe updaten kann.
Wo sollte ich diese Codezeilen in viewdidload hinzufügen? oder cellforrowatindexpath? oder irgendeine andere Methode? –
Dies ist sehr wichtig "Sie müssen sicherstellen, dass Sie die Datenquelle im selben Thread aktualisieren" – Siyavash
@Siyavash wie kann ich das tun? Ich habe nur wenige Delegierte, die die Datenquelle aktualisieren, um sicherzustellen, dass sie im selben Thread aktualisiert werden. – titan