如何使UITableViewCell突出显示状态持久化

时间:2011-04-17 16:24:44

标签: iphone uitableview

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

这样可以正常工作,但问题是当我在桌面视图中向上和向下滚动时,重新出现时所选的单元格不会突出显示。如何使突出显示的蓝色颜色保持不变,这样即使向上或向下滚动表格,用户也可以直观地看到他们的选择?

由于

1 个答案:

答案 0 :(得分:19)

保存所选单元格的索引路径

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