【问题标题】:Find selected cells in a TableView在 TableView 中查找选定的单元格
【发布时间】:2012-07-13 11:04:45
【问题描述】:

我正在编写一个带有 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!");
    } 
}

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

有什么想法吗?

非常感谢!

克劳斯

【问题讨论】:

    标签: uitableview selection


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多