textLabel.backgroundColor на UITableViewCell не работает

Я пытаюсь установить маркировку backgroundColor моего UITableViewCells, и это не делает абсолютно ничего вообще. Интересно, существует ли другой способ сделать это, таким образом, я спрашиваю!

Я попробовал это:

    cell.textLabel.backgroundColor = [UIColor redColor];
cell.backgroundColor = [UIColor redColor];

И это не работает, ничто больше?

Спасибо!

13
задан Tommy B. 9 April 2010 в 20:04
поделиться

1 ответ

Я предполагаю, что вы пытаетесь это сделать в cellForRowAtIndexPath.

Согласно ссылке на класс UITableViewCell :

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

45
ответ дан 1 December 2019 в 17:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: