IOS中的多选



我不确定下面的代码有什么问题。我所做的就是获取表格中的所有行并将它们标记为选中,如果它们已经选中,我就取消选中。每当我尝试这样做时,一些行索引路径是不正确的。每次总会遗漏一些索引路径。我做错了什么?

let visibleRows = self.tableView.indexPathsForVisibleRows
for row in visibleRows! {
    if(self.sections[row.section].files[row.row].type != "cloud"){
        let cell = self.tableView.cellForRowAtIndexPath(row)
        cell?.setSelected(action, animated: true)
        tableView.selectRowAtIndexPath(row, animated: true, scrollPosition: UITableViewScrollPosition.Top)
        if(action  == true){
            cell?.accessoryType = .Checkmark
        } else {
            cell?.accessoryType = .None
            NSNotificationCenter.defaultCenter().postNotificationName("disableOptions", object: nil)
        }
    }
}

执行以下步骤

  1. 创建并初始化MutableArray,可能在viewDidLoad中。
  2. 添加选定cell对应的indexPath。在delegate方法中为cell选择didSelectRowAtIndexPath方法
  3. 执行此操作
  4. 检查cellForRowAtIndexPath in数组中的indexPath。如果indexPath存在,则处理为选中的cell,否则处理为未选中的cell
  5. 如果didSelectRowAtIndexPath方法中需要,则从数组中删除indexPath

相关内容

  • 没有找到相关文章

最新更新