勾选UITableView的单元格

时间:2014-02-28 19:42:29

标签: ios uitableview

在我的名为_selectAttributes的UITableView中,我想在点击每个单元格时添加和删除复选标记。 这是代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell * cell = [_selectAttributes cellForRowAtIndexPath:indexPath];
    if (cell.accessoryType != UITableViewCellAccessoryCheckmark) {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }
    else {
        cell.accessoryType = UITableViewCellAccessoryNone;
    }
}

一切似乎运作良好,但当我在桌面上下滚动时,复选标记出现在其他单元格上并在之前的单元格上消失。

我该如何解决?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

我会创建一个选定索引路径的NSArray。在tableView:didSelectRowAtIndexPath:上,添加该数组的索引路径,并在tableView:cellForRowAtIndexPath:中检查索引路径是否在数组中,并相应地设置UITableViewCell的附件类型。

答案 1 :(得分:1)

声明名为NSIndexPath的{​​{1}}属性。

然后让你的委托方法selectedIndexPathcellForRowAtIndexPath像这样:

didSelectRowAtIndexPath

<强>更新: 我没注意你想要多个细胞选择的解决方案。我的答案显然只解决了单细胞选择的问题,但我认为这是一个良好的开端。