UITableViewCell теряет свойства после отмены выбора - PullRequest
1 голос
/ 27 января 2011

У меня есть собственный подкласс UITableViewController, который использует набор пользовательских подклассов UITableViewCells.

Ничего особенного. Ячейки таблицы имеют два подпредставления в представлении содержимого.

Прямо сейчас у меня есть пользователь, выбирающий ячейку, контроллер навигации выдвигает на экран выбора цвета. Пользователь выбирает цвет. Отлично. Представление таблицы является делегатом этого представления. Он получает цвет, обновляет выбранную ячейку, так что подпредставление теперь использует этот цвет фона, а затем извлекает текущее представление из контроллера навигации.

Все работает! TableViewController возвращается в вид, и индикатор в ячейке теперь отображает цвет фона, выбранный пользователем. НО после того, как появится табличное представление, ячейка, выделенная для ячейки, будет автоматически выделена синим цветом. Это некоторая встроенная магия из TableViewController. Это хорошо, но это сбрасывает статус индикатора моей ячейки.

Проблема в том, что я не могу найти, где правильно обновить ячейку до этого нового цвета. Цвет хранится в виде ивара в tableViewController. Поэтому я решил попробовать это по адресу:

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath

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

1 Ответ

0 голосов
/ 27 января 2011

Я пока не уверен, как вы устанавливаете цвет фона, но вы должны использовать свойство backgroundView вашего подкласса UITableViewCell.

someCell.backgroundView.backgroundColor = someColor;

(изнутри вашего UITableViewController или откуда вы получаете информацию о цвете от сборщика).

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

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