Рисование выбранного состояния в пользовательском UITableViewCell - PullRequest
0 голосов
/ 10 апреля 2010

У меня есть клиент UITableViewCell, весь экран которого отображается в drawRect. Когда он рисует, он создает CGLayers, так что он может повторно использовать определенные части, когда что-то меняется.

Я изменил свой UITableViewCellSelectionStyle на «Нет», потому что я не хочу, чтобы выбранный вид по умолчанию покрывал мой рисунок.

Моя проблема в том, что я звоню setNeedsDisplay в setSelected:animated: для своей ячейки, но к тому времени, когда вызывается drawRect, setSelected:animated: уже был вызван снова для отмены выбора ячейки. В моем контроллере табличного представления didSelectRowAtIndexPath я называю deselectRowAtIndexPath, как советует Apple.

РЕДАКТИРОВАТЬ - я также пытался вызвать setNeedsDisplay на моей ячейке из (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath контроллера представления таблицы, но это ничего не изменило.

Есть идеи? Благодаря.

1 Ответ

5 голосов
/ 12 апреля 2010

Используйте свойство ячейки таблицы selectedBackgroundView. Если вы назначите для этого пользовательское представление, оно будет отображаться и скрываться одновременно с заданными по умолчанию фонами выбора, другими словами, без необходимости ждать, пока setNeedsDisplay начнет звонить drawRect: в ячейке. сам по себе.

...