Обновление
По-видимому, существующая инфраструктура UITableViewCell очень затрудняет изменение цвета фона ячейки и позволяет ему хорошо работать при всех изменениях ее состояния (режим редактирования и т. Д.).
Решение было опубликовано на этом SO-вопросе , и на нескольких форумах оно рассматривается как "единственное решение, одобренное инженерами Apple". Он включает создание подкласса UITableViewCell и добавление пользовательского представления для свойства backgroundView
подклассовой ячейки.
Исходное сообщение - это решение не работает полностью, но все же может быть полезно в некоторых ситуациях
Если у вас уже есть объект UITableViewCell, просто измените его свойство contentView
backgroundColor
.
Если вам нужно создать UITableViewCells с пользовательским цветом фона, процесс будет немного длиннее. Во-первых, вы захотите создать источник данных для вашего UITableView - это может быть любой объект, который реализует протокол UITableViewDataSource
.
В этом объекте вам необходимо реализовать метод tableView:cellForRowAtIndexPath:
, который возвращает UITableViewCell, когда ему присваивается NSIndexPath для расположения ячейки в таблице. При создании этой ячейки вы захотите изменить свойство backgroundColor
ее contentView
.
Не забудьте установить свойство dataSource
объекта UITableView для объекта источника данных.
Для получения дополнительной информации вы можете прочитать эти документы API:
Обратите внимание, что для всех трех ссылок необходима регистрация в качестве разработчика Apple.