【发布时间】:2023-03-19 21:10:02
【问题描述】:
请多多包涵,因为我是 Swift 编程新手。
我有一个myCollectionViewController,它是UICollectionViewController 的子类。 MyCollectionViewController 的单元格是MyCollectionViewCell 的一个类,它是一个自定义的UICollectionViewCell。
我要做的是根据用户选择更改MyCollectionViewCell 的背景,并在用户滚动到MyCollectionViewController 的其他单元格时保持此选择。我尝试了两种方法来做到这一点,但到目前为止都失败了。
第一种方式是在MyCollectionViewController的didSelectItemAt方法中写代码:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "myCell", for: indexPath) as! MyCollectionViewCell
cell.contentView.backgroundColor = UIColor.red
}
但是,这不起作用,单元格颜色没有改变。
我尝试这样做的另一种方法是更改MyCollectionViewCell 的isSelected 属性。
override var isSelected: Bool {
// Change what happens when the user selects a cell
didSet {
if self.isSelected {
self.contentView.backgroundColor = Colours.primary
} else {
self.contentView.backgroundColor = Colours.secondary
}
}
}
虽然这有效,但选择并没有持续。也就是说,当用户滚动到collectionView 中的另一个单元格然后再滚动回来时,选择就消失了。
任何建议将不胜感激。
【问题讨论】:
标签: ios swift uicollectionview uicollectionviewcell