Изменить свойства UILabel в TableViewCell - PullRequest
1 голос
/ 24 июня 2009

У меня есть tableView, который свободно основан на DetailViewController в старых книгах SQLite. Он создан программно. Каждая ячейка отображает одно значение, которое при нажатии отображает общий editController , который позволяет пользователю редактировать это значение. Довольно стандартные вещи с оттенком какао ...

Кроме ... У меня также есть сегментированный элемент управления в заголовке указанного tableView, который в зависимости от его настройки должен изменить атрибут (textColor) для UILabel в ОДНОМ из 8 ± tableViewCells в таблице. У меня нет IBOutlets для этого tableView, потому что я создал его полностью в коде. Итак, что мне нужно сделать в моем методе (void) сегментAction: (id) отправителя (срабатывает, когда segmentedControl меняет состояние), чтобы позволить мне получить доступ и изменить это значение и отобразить его для пользователя? Когда таблица была построена ( cellForRowAtIndexPath ), каждая UILabel была названа «value», а затем добавлена: [cell.contentView addSubview: value] .

Я попытался установить свойство самого viewController, которое затем проверяется во время cellForRowAtIndexPath и выполняет там textColor ..., а затем добавляет [self.tableView setNeedsDisplay] в мой сегмент Действие : метод, но он не работает?!?

Есть идеи?

Ответы [ 2 ]

1 голос
/ 24 июня 2009

Если вам известен путь индекса ячейки, которую вы хотите изменить, вы можете вызвать cellForRowAtIndexPath: для получения UITableViewCell. Как только у вас есть это, вы можете получить UILabel от него. Если при создании тега UILabel установить какое-либо полезное значение, вы можете извлечь его из UITableViewCell через viewWithTag:.

0 голосов
/ 24 июня 2009

В классе, который реализует cellForRowAtIndexPath, вы также можете хранить ссылку на UILabel, которую вы хотите при создании соответствующей ячейки.

Это будет означать, что вы можете изменить ярлык и отметить его для перекраски.

В качестве альтернативы вы можете держать локальную BOOL, чтобы показать, что ячейка должна быть нарисована по-другому - и затем использовать это в cellForRowAtIndexPath: чтобы нарисовать ее с фоном.

Возможно, вам будет проще с объектом textLabel 3.0 в UITableViewCell

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...