Изменение цвета фона для cell.accessoryView и cell.editingAccessoryView

Всякий раз, когда я добавляю accessoryView к своему UITableViewCell, он не передает цвет фона? Я устанавливаю UISwitch в качестве моего accessoryView, а цвет, который я установил в свойстве cell.backgroundColor, влияет только на contentView, а не accessoryView. Я перепробовал все, чтобы установить для них одинаковое значение. Я попытался установить свойства cell.backgroundView.backgroundColor и cell.accessoryView.backgroundColor на нужный мне цвет, но ничего не работает. Я также попытался создать подпредставление внутри contentView, что решило проблему backgroundColor (избегая ее), но это создает проблему, когда переключатель располагается поверх cell.textLabel, когда текст слишком длинный.

Как я могу изменить цвет фона accessoryView без создания подпредставления в contentView или изменить длину cell.textLabel без создания подкласса UITableViewCell?

26
задан dandan78 2 July 2012 в 15:31
поделиться

1 ответ

Прочитав документацию (новая идея), я нашел статью « Более пристальный взгляд на ячейки табличного представления ». Это помогло мне понять состав ячеек, и я нашел свой ответ ...

ячейки выглядят так ...

alt text

Поскольку cell.accessoryView является сестринским представлением для cell.contentView, мне пришлось спросить ячейку .contentView для своего супервизора, а затем я смог изменить цвет фона для обоих представлений одновременно. Вот как выглядит код ...

// Cell Formatting
cell.contentView.superview.backgroundColor = [UIColor greenColor];

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

57
ответ дан 28 November 2019 в 06:01
поделиться
Другие вопросы по тегам:

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