Ответ 1
Я предполагаю, что вы пытаетесь это сделать в cellForRowAtIndexPath.
В соответствии с ссылкой на класс UITableViewCell:
Примечание. Если вы хотите изменить цвет фона ячейки (путем установки цвет фона ячейки через Свойство backgroundColor, объявленное UIView), вы должны сделать это в Tableview: willDisplayCell: forRowAtIndexPath: метод делегата, а не tableView: cellForRowAtIndexPath: из источник данных.
Сделайте так:
- (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
}
Если вам нужен более тонкий контроль над дисплеем ячейки, простой способ - создать его в IB и загрузить его из nib в cellForRowAtIndexPath. См. Раздел "Загрузка пользовательских таблиц - просмотр ячеек из файлов Nib" на странице на этой странице в руководстве по программированию таблиц.