在TableView中查找选定的单元格

时间:2012-07-13 11:04:46

标签: uitableview selection

我正在编写一个带有tableview的iPhone应用程序,该应用程序显示一个项目列表,每个项目带有一个复选标记。只需点击一下,我就可以选择/取消选择每个项目。当我按下[DONE]按钮时,我想沿着所有单元格迭代并检查哪个单元格已启用复选标记。类似的东西:

    for (int i = 0; i < [fullDataset count]; i++) {
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
    UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:indexPath];
    if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
        NSLog(@"THIS CELL IS SELECTED!");
    } 
}

现在,问题是使用这个程序我只得到被选中的单元格,这些单元格是当前显示的。我想确保程序在所有单元格中运行,甚至是未显示的单元格。我可能会使用另一种数据结构来跟踪选择,但它看起来有点多余。

有什么想法吗?

非常感谢!

克劳斯

1 个答案:

答案 0 :(得分:2)

如果选择与否,你不能指望细胞告诉你,细胞会被重复使用并且总是改变状态 你需要管理所选indexPaths的单独NSSet,当用户点击一个单元格时,你将这个indexPath添加到集合中,当他取消选择单元格时,你从集合中删除indexPath。