尝试覆盖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 } }