Ios 如何选择所有UICollectionView单元格';是否通过单击按钮取消选择?

Ios 如何选择所有UICollectionView单元格';是否通过单击按钮取消选择?,ios,swift,uicollectionview,uicollectionviewcell,jquery-ui-selectable,Ios,Swift,Uicollectionview,Uicollectionviewcell,Jquery Ui Selectable,我需要实现一些文件管理器,有超过15个按钮作为过滤器标签, 我添加了水平集合视图、自定义单元格和两个数组。 单一选择效果很好, 但我需要选择所有和取消选择所有的按钮点击 你知道怎么实现吗 这个不行 变量arraySelectedFilterIndex=[IndexPath]() var arraySelectedFilterData=[String]() func collectionView(collectionView:UICollectionView,numberOfItemsInSe

我需要实现一些文件管理器,有超过15个按钮作为过滤器标签, 我添加了水平集合视图、自定义单元格和两个数组。 单一选择效果很好, 但我需要选择所有和取消选择所有的按钮点击 你知道怎么实现吗

这个不行


变量arraySelectedFilterIndex=[IndexPath]()
var arraySelectedFilterData=[String]()
func collectionView(collectionView:UICollectionView,numberOfItemsInSection:Int)->Int{
返回self.filterTitles.count
}
func collectionView(collectionView:UICollectionView,cellForItemAt indexPath:indexPath)->UICollectionViewCell{
让cell=collectionView.dequeueReusableCell(带有reuseidentifier:“FilterCell”,for:indexath)作为!FilterCell
cell.titleL.text=String(filterTitles[indexPath.row])
cell.pointIMG.image=UIImage(名称:filterTitles[indexath.row]+“40”)
如果arraySelectedFilterIndex.contains(indexPath){//您需要检查所选索引数组是否包含当前索引如果是,则更改颜色
cell.isSelected=true
}
否则{
cell.isSelected=false
}
cell.layoutSubviews()
返回单元
}
func collectionView(collectionView:UICollectionView,didSelectItemAt indexPath:indexPath){
打印(“您选择了单元格(indexPath.item)!”)
Haptico.shared().generate(.light)
让strData=filterTitles[indexPath.item]
如果arraySelectedFilterIndex.contains(indexPath){
arraySelectedFilterIndex=arraySelectedFilterIndex.filter{$0!=indexPath}
arraySelectedFilterData=arraySelectedFilterData.filter{$0!=strData}
}
否则{
arraySelectedFilterIndex.append(indexPath)
arraySelectedFilterData.append(strData)
}
collectionView.reloadData()
打印(arraySelectedFilterData)
}
@iAction func selectAllA(uSender:Any){。
//这里需要添加所有选择和取消选择功能的代码
}

我不知道为什么有时使用“indexPath.row”有时使用“indexPath.item”

无论如何,您的函数应该是这样的

@IBAction func selectAllA(_ sender: Any) {
        arraySelectedFilterIndex.removeAll()
        arraySelectedFilterData.removeAll()

        for (index, element) in self.filterTitles.enumerated() {
            arraySelectedFilterIndex.append(IndexPath(item: index, section: 0))
            arraySelectedFilterData.append(element)
        }

        collectionView.reloadData()
        print(arraySelectedFilterData)
    }
首先,您要清除以前的选择以避免重复,但可以使用映射/字典结构来避免重复,而不是使用列表


然后为每个元素将索引和数据添加到所选列表中。最后重新加载数据,我在最后保留了打印内容,以便您检查。

我不确定为什么有时使用“indexPath.row”,有时使用“indexPath.item”

无论如何,您的函数应该是这样的

@IBAction func selectAllA(_ sender: Any) {
        arraySelectedFilterIndex.removeAll()
        arraySelectedFilterData.removeAll()

        for (index, element) in self.filterTitles.enumerated() {
            arraySelectedFilterIndex.append(IndexPath(item: index, section: 0))
            arraySelectedFilterData.append(element)
        }

        collectionView.reloadData()
        print(arraySelectedFilterData)
    }
首先,您要清除以前的选择以避免重复,但可以使用映射/字典结构来避免重复,而不是使用列表


然后为每个元素将索引和数据添加到所选列表中。最后重新加载数据,我在最后给您保留了打印,以便您检查。

除了
所有选中的
&
所有取消选中的
,还有其他状态吗
所有选中的
&
所有取消选中的