Как сделать UITableViewCell включенным состояние

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

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

Спасибо

Ответ 1

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

- (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;