【发布时间】:2018-07-27 21:33:33
【问题描述】:
基本上我拥有的是一个非常简单的 UICollectionViewCell 子类,它通过其 isSelected 属性上的属性观察器更改其背景颜色和其他一些美学特征:
class SelectableCell: UICollectionViewCell {
override var isSelected: Bool{
didSet{
if(isSelected)
{
self.backgroundColor = UIColor.white
}
else
{
self.backgroundColor = UIColor.black
}
}
}
}
这或多或少按预期工作,如果我在我的收藏视图中点击这些单元格之一,背景会相应改变。
问题是,如果我选择一个单元格,然后决定滚动浏览我的集合,该单元格将取消选择,直到我完成滚动然后重新选择
(注意:当我说重新选择时,我并不是说委托功能 像 didSelectItem 被触发 - 只是 isSelected 属性 变回真)
这似乎只有在我在另一个单元格的范围内开始滚动时才会发生。
所以我假设正在发生的是,当我按下它时它会立即取消选择单元格,当它检测到我正在滚动而不是点击它时,它会回滚选择状态并重新选择正确的单元格.
有什么方法可以让它只在修饰时提交,或者在中间期间保持它处于选定状态?
【问题讨论】:
标签: ios swift uicollectionview uicollectionviewcell