Hier ist der effizienteste Weg, um dieses Problem zu lösen: Verwenden Sie die delegate-Methode willDisplayCell (dies berücksichtigt auch die weiße Farbe für den Hintergrund der Textbeschriftung, wenn Sie cell.textLabel.text und / oder cell.detailTextLabel.text verwenden ):
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... }
Wenn diese Delegatmethode aufgerufen wird, wird die Farbe der Zelle über die Zelle und nicht über die Tabellenansicht gesteuert, wie bei Verwendung von:
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath { ... }
Fügen Sie also im Hauptteil der Zelldelegatenmethode den folgenden Code hinzu, um die Farben der Zellen zu ändern, oder verwenden Sie einfach den Funktionsaufruf, um alle Zellen der Tabelle auf dieselbe Farbe zu bringen.
if (indexPath.row % 2)
{
[cell setBackgroundColor:[UIColor colorWithRed:.8 green:.8 blue:1 alpha:1]];
}
else [cell setBackgroundColor:[UIColor clearColor]];
Diese Lösung hat unter meinen Umständen gut funktioniert ...
UITableViewCellAccessoryCheckmark
? Vielen Dank.cell.textLabel.backgroundColor = [UIColor clearColor];