在我的名为_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;
}
}
一切似乎运作良好,但当我在桌面上下滚动时,复选标记出现在其他单元格上并在之前的单元格上消失。
我该如何解决?
提前谢谢。
答案 0 :(得分:1)
我会创建一个选定索引路径的NSArray。在tableView:didSelectRowAtIndexPath:
上,添加该数组的索引路径,并在tableView:cellForRowAtIndexPath:
中检查索引路径是否在数组中,并相应地设置UITableViewCell的附件类型。
答案 1 :(得分:1)
声明名为NSIndexPath
的{{1}}属性。
然后让你的委托方法selectedIndexPath
和cellForRowAtIndexPath
像这样:
didSelectRowAtIndexPath
<强>更新强>: 我没注意你想要多个细胞选择的解决方案。我的答案显然只解决了单细胞选择的问题,但我认为这是一个良好的开端。