Ich habe eine UITableView mit abwechselnd farbigen UITableViewCells. Und die Tabelle kann bearbeitet werden: Zeilen können neu geordnet und gelöscht werden. Wie aktualisiere ich die Hintergrundfarbe der Zellen, wenn die Zeilen neu geordnet oder gelöscht werden?Aktualisieren von abwechselnd farbigen UITableViewCells, wenn Zeilen neu geordnet oder gelöscht werden
ich dies mit den alternierenden gefärbten Zellen zu zeichnen:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([indexPath row] % 2) {
// even row
cell.backgroundColor = evenColor;
} else {
// odd row
cell.backgroundColor = oddColor;
}
}
Aber diese Methode nicht aufgerufen wird, wenn eine Zeile neu angeordnet wird oder gelöscht. Und ich kann nicht [tableView reloadData]
aus der folgenden Methode aufrufen, weil es die App in einer Endlosschleife stürzt:
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
// Move the object in the array
id object = [[self.list objectAtIndex:[fromIndexPath row]] retain];
[self.list removeObjectAtIndex:[fromIndexPath row]];
[self.list insertObject:object atIndex:[toIndexPath row]];
[object release];
// Update the table ???
[tableView reloadData]; // Crashes the app in an infinite loop!!
}
Hat jemand einen Zeiger oder eine Best Practices-Lösung mit der Ausgabe von Neuordnen alternierende farbigen Zellen umgehen?
Dank
Danke! Das macht den Trick. –