Zakładam, że próbujesz to w cellForRowAtIndexPath.
Według UITableViewCell class reference:
Uwaga: Jeśli chcesz zmienić kolor tła komórki (poprzez ustawienie kolor tła komórki za pośrednictwem właściwości backgroundColor deklarowanej przez UIView) Cię musi to zrobić w tableView: willDisplayCell: forRowAtIndexPath: metoda delegata, a nie w tableView: cellForRowAtIndexPath: z źródło danych.
Więc to zrobić:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor redColor]; //must do here in willDisplayCell
cell.textLabel.backgroundColor = [UIColor redColor]; //must do here in willDisplayCell
cell.textLabel.textColor = [UIColor yellowColor]; //can do here OR in cellForRowAtIndexPath
}
Jeśli potrzebujesz lepszą kontrolę nad wyświetlaczu komórki, łatwym sposobem jest zaprojektowanie go w IB i załadować go ze stalówką w cellForRowAtIndexPath. Zobacz sekcję "Ładowanie niestandardowych widoków tabel z plików końcówek" na stronie this page w Przewodniku po programowaniu w widoku tabeli.
Niesamowite, szukałem wszędzie tego. Dzięki –