我所拥有的基本上是一个非常简单的UICollectionViewCell子类。通过观察其isSelected属性,该子类会更改其背景颜色和其他美学特征:
class SelectableCell: UICollectionViewCell {
override var isSelected: Bool{
didSet{
if(isSelected)
{
self.backgroundColor = UIColor.white
}
else
{
self.backgroundColor = UIColor.black
}
}
}
}
如果我在我的集合视图中点击其中一个单元格,背景会相应地改变,这基本上可以正常工作。
问题是,如果我选择一个单元格,然后决定滚动我的收藏,该单元格将取消选择,直到我完成滚动,然后重新选择。
(注意:当我说重新选择时,并不意味着像didSelectItem这样的委托函数被触发 - 只是isSelected属性返回true)
只有当我在另一个单元格的边界内开始滚动时,才会出现这种情况。
因此,我认为它立即在我触摸时取消了单元格的选择状态,当它检测到我滚动而不是点击时,它会回滚选择状态并重新选择正确的单元格。
是否有一种方法可以使其仅在松开触摸时提交,或者在中间期间保持选定状态?