IOS中的多选

Posted

技术标签:

【中文标题】IOS中的多选【英文标题】:Multi select in IOS 【发布时间】:2016-10-26 05:11:28 【问题描述】:

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

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)
        
    

【问题讨论】:

你确定你得到了所有行吗?您的代码是为 VisibleRows 编写的。 【参考方案1】:

执行以下步骤

    创建并初始化一个MutableArray,可能在viewDidLoad。 添加选定cellindexPath。在cell 选择的delegate 方法中执行此操作,didSelectRowAtIndexPath 方法 检查indexPath 数组中的cellForRowAtIndexPath。如果indexPath存在则作为选中的cell处理,否则作为未选中的cell。 如果didSelectRowAtIndexPath 方法中需要,请从数组中删除indexPath

【讨论】:

NSMutableIndexSet 比数组好 谢谢Paulw11,我只是提供了实现的步骤,不管集合对象是什么:) 很抱歉,问题不在于全选,但我确实理解您的方式非常有效,非常感谢您的回复,我问了另一个问题,描述了您可以采取的确切情况看看吧,***.com/questions/40255463/…

以上是关于IOS中的多选的主要内容,如果未能解决你的问题,请参考以下文章

IOS中的多选

深入浅出Flask(16): H-ui前端框架的单选多选开关控件

Jquery获取列表中的值和input单选多选框控制选中与取消

支付宝小程序树节点构建渲染单选多选等问题的处理

单选多选样式写法

text 过滤django多选多到多多