Как создать подкласс UITableViewCell и использовать его, чтобы не очищать цвет фона UILabel на выбранном UITabeViewCell? - PullRequest
4 голосов
/ 24 июля 2010

В моем приложении я использую метку для отображения заданного цвета путем установки цвета фона в настроенном UITableViewCell (потому что этот цвет может быть изменен в соответствии с входящими данными из Интернета), после viewDidLoad все в порядке, но когда эта ячейкавыбран (выделен) цвет очищается.

После поиска я обнаружил, что кто-то должен подкласс UITableViewCell и перезаписать setHighlight метод, чтобы не очистить цвет фона метки.Я пытался, но не повезло.

Так кто-нибудь знает, как это сделать?правильный способ подкласса UITableViewCell, а затем использовать его в UITableViewController, чтобы не очистить цвет фона метки?Пожалуйста, помогите мне.

Спасибо за любой совет.

Ответы [ 3 ]

5 голосов
/ 26 июля 2010

Из последней документации UITableViewCell:

Примечание. Если вы хотите изменить цвет фона ячейки (путем установки цвета фона ячейки через свойство backgroundColor, объявленное UIView)Вы должны сделать это в tableView: willDisplayCell: forRowAtIndexPath: метод делегата, а не в tableView: cellForRowAtIndexPath: источника данных.Изменения в цветах фона ячеек в табличном представлении стиля группы имеют эффект в iOS 3.0, который отличается от предыдущих версий операционной системы.Теперь он влияет на область внутри прямоугольника с закругленными углами, а не на область вне него.

Кроме того, обратитесь к Руководству по программированию табличного представления для iOS , чтобы найти некоторые из лучших документов.1010 *

3 голосов
/ 24 июня 2013

переопределить - (void) layoutSubviews ячейки и установите label.backgroundColor там. это работа для меня

1 голос
/ 24 марта 2012

Вам придется либо переопределить представление, либо использовать UIImageView.См. Подвид UITableViewCell исчезает при выборе ячейки для получения дополнительной информации.

...