如何使UITableViewCell高亮状态持续



我有一个UITableviewCell。当用户单击单元格时,我保存索引,然后调用cellforrowAtIndexpath方法来获取单元格,然后在该单元格上调用SetHighlighted:TRUE。

这工作得很好,但问题是,当我向上和向下滚动表视图,选定的单元格时,重新出现,没有突出显示。如何使突出显示的蓝色保持不变,以便用户在上下滚动表格后仍然可以直观地看到他们的选择?

谢谢

保存所选单元格的索引

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

但是,请记住apple不鼓励使用单元格高亮状态来指示所选单元格。你应该使用cell.accessoryType = UITableViewCellAccessoryCheckmark;

最新更新