Ios 如何选择所有UICollectionView单元格';是否通过单击按钮取消选择?
我需要实现一些文件管理器,有超过15个按钮作为过滤器标签, 我添加了水平集合视图、自定义单元格和两个数组。 单一选择效果很好, 但我需要选择所有和取消选择所有的按钮点击 你知道怎么实现吗 这个不行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
变量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)
}
首先,您要清除以前的选择以避免重复,但可以使用映射/字典结构来避免重复,而不是使用列表
然后为每个元素将索引和数据添加到所选列表中。最后重新加载数据,我在最后给您保留了打印,以便您检查。除了
所有选中的
&所有取消选中的
,还有其他状态吗所有选中的
&所有取消选中的
?