尝试覆盖UICollectionViewCell Swift中的“select”以获得自定义select状态

我正在尝试在UICollectionView中为我的单元格实现自定义select样式。 尽pipe很容易在didSelect和didDeSelect方法中手动执行此操作,但我希望通过操作UICollectionViewCell中的“selected”variables来实现此目的。

我有这个代码:

override var selected: Bool { get { return super.selected } set { if newValue { self.imageView.alpha = 0.5 println("selected") } else if newValue == false { self.imageView.alpha = 1.0 println("deselected") } } } 

现在,当我select一个单元格时,单元格会突出显示,但是“selected”被打印两次,取消select不起作用(即使两个UICollectionView方法都已经实现)。

我将如何去做这件事? 谢谢!

而对于Swift 3.0:

 override var isSelected: Bool { didSet { alpha = isSelected ? 0.5 : 1.0 } } 

通过进入代码找出它。 问题是super.selected没有被修改。 所以我改变了这个代码:

 override var selected: Bool { get { return super.selected } set { if newValue { super.selected = true self.imageView.alpha = 0.5 println("selected") } else if newValue == false { super.selected = false self.imageView.alpha = 1.0 println("deselected") } } } 

现在它正在工作。

试试这个。

 override var selected: Bool { didSet { self.alpha = self.selected ? 0.5 : 1.0 } }