Перезагрузка UITableViewCell при выборе - PullRequest
0 голосов
/ 11 августа 2009

Okidoke. Вот моя проблема: у меня есть серия сложных UITableViewCells, настроенных для отображения историй из новостной ленты (зевок). Я хочу, чтобы фоновое изображение и высота ячейки менялись при выделении (как средство пометки, что история была прочитана).

Теперь, до настройки удаления из очереди, я смог сделать это с помощью простого [self.tableView reloadData]. Похоже, что с пустыми клетками нельзя ходить; перезагрузка табличного представления не перерисовывает ячейки, чтобы соответствовать их измененному состоянию.

Я пробовал reloadRowsAtIndex - и, хотя это работает - прекрасно - для первой ячейки, на которую нажимает пользователь, после этого становится странно: иногда ячейка перезагружается правильно, иногда нет.

Очевидно, что каждая история является объектом NSMutableDictionary. Я использую объект NSNumber, чтобы отслеживать, была ли прочитана история.

Я бы опубликовал код, и я сделаю это, если кто-нибудь спросит, но я ищу универсальное решение, которое можно было бы реализовать в любом UITableViewController (поделитесь любовью).

Итак, проще говоря: как надежно перерисовать сложные ячейки при выделении?

Ответы [ 2 ]

0 голосов
/ 11 августа 2009

Предполагая, что у вас есть индексный путь, вы можете получить доступ к ячейке и напрямую управлять ей:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  // handle the selection...

  UITableViewCell *cell = [tableView cellForRowAtIndexPath: indexPath];
  if (nil != cell) {
    //
    // now update the cell to reflect the new state
    //
  }
}
0 голосов
/ 11 августа 2009

Попробуйте присвоить каждой ячейке уникальный идентификатор, чтобы отключить ее, ваши ячейки должны возвращаться с измененными состояниями, если вы используете уникальный идентификатор для каждой ячейки, поэтому 20 ячеек = 20 идентификаторов, надеюсь, это поможет

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