我的UICollectionView有一个奇怪的问题。当我在Collection View中选择第一个单元格时,最后一个单元格会突出显示,但不会显示在所选索引路径的数组中。为什么会这样?
以下是我用来选择和取消选择单元格的代码?
return myList.Orderby<int>("MyIntProperty");
答案 0 :(得分:0)
您没有显示您的单元格的初始化方式,但是......
collectionView(_:didDeselectItemAt:)
仅在用户成功取消选择项目时调用。如果以编程方式取消选择项目,则不会调用它。如果在初始化单元格时没有重置图层的borderWidth
,则在集合视图重用单元格时,非零宽度将继续。
答案 1 :(得分:-2)
我在S.O.上发现了这个link。这很有帮助。要解决此问题,我只需将以下代码添加到func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {}
。
...代码
if collectionView.indexPathsForSelectedItems?.contains(indexPath) == true {
print("This cell is selected \(indexPath.item)")
cell?.layer.borderWidth = 3
cell?.layer.borderColor = UIColor.yellow.cgColor
}else{
cell?.layer.borderWidth = 0
}