在UICollectionView中选择第一个单元格时,会突出显示最后一个单元格

时间:2018-06-15 22:57:05

标签: ios uicollectionview swift4 uicollectionviewcell

我的UICollectionView有一个奇怪的问题。当我在Collection View中选择第一个单元格时,最后一个单元格会突出显示,但不会显示在所选索引路径的数组中。为什么会这样?

以下是我用来选择和取消选择单元格的代码?

return myList.Orderby<int>("MyIntProperty");

2 个答案:

答案 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

    }