Как сделать так, чтобы выделенное состояние UITableViewCell сохранялось - PullRequest
10 голосов
/ 17 апреля 2011

У меня есть UITableviewCell.Когда пользователь щелкает ячейку, я сохраняю indexpath и затем вызываю метод cellforrowAtIndexpath, чтобы получить ячейку, а затем вызываю SetHighlighted: TRUE для этой ячейки.

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

Спасибо

1 Ответ

19 голосов
/ 17 апреля 2011

сохранить указательный путь выбранной ячейки

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    self.selectedIndexPath = indexPath;
}

и сравните в tableVIew:cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    // configure cell
    if ([indexPath isEqual:self.selectedIndexPath]) {
        [cell setHighlighted:YES];
    }
    else {
        [cell setHighlighted:NO];
    }
    return cell;

}

Однако имейте в виду, что яблоко не рекомендует использовать состояние выделения ячейки для обозначения выбранной ячейки. Вы, вероятно, должны использовать cell.accessoryType = UITableViewCellAccessoryCheckmark;

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