пожалуйста, потерпите меня, поскольку я новичок в быстром программировании.
У меня есть myCollectionViewController
, который является подклассом UICollectionViewController
. Ячейки для MyCollectionViewController
представляют собой класс MyCollectionViewCell
, который является пользовательским UICollectionViewCell
.
Что я пытаюсь сделать, это изменить фон MyCollectionViewCell
на основе выбора пользователя И сохранить этот выбор, когда пользователь прокручивает к другим ячейкам MyCollectionViewController
. Я попробовал два способа сделать это, и пока оба потерпели неудачу.
Первым способом было написать код в методе didSelectItemAt
MyCollectionViewController
:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "myCell", for: indexPath) as! MyCollectionViewCell
cell.contentView.backgroundColor = UIColor.red
}
Однако это не сработало, и цвет ячейки не изменился.
Другой способ, которым я пытался это сделать, - это изменить свойство isSelected
MyCollectionViewCell
.
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
, а затем прокручивал назад, выбор исчезал.
Любой совет будет оценен.