Цвет фона ячейки таблицы обычно устанавливается следующим образом:
cell.backgroundView.backgroundColor = [UIColor redColor];
Это отлично работает. Однако когда создается объект класса UITableViewCell, по умолчанию у него нет backgroundView, он равен nil. Разработчик должен создать backgroundView, когда это необходимо. Поэтому в зависимости от конкретной ситуации вам нужно сделать что-то вроде:
if (cell.backgroundView == nil) {
cell.backgroundView = [[[UIView alloc] init] autorelease];
}
cell.backgroundView.backgroundColor = [UIColor redColor];