我正在尝试在UICollectionView中为我的单元格实现自定义选择样式。尽管可以在didSelect和didDeSelect方法中手动执行此操作,但我希望通过操作UICollectionViewCell中的“selected”变量来实现此目的。
我有这个代码:
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")
}
}
}
现在,当我选择一个单元格时,单元格会突出显示,但“选中”会被打印两次并且取消选择不起作用(即使实现了两个UICollectionView方法)。
我该怎么做?谢谢!
答案 0 :(得分:30)
对于Swift 3.0:
override var isSelected: Bool {
didSet {
alpha = isSelected ? 0.5 : 1.0
}
}
答案 1 :(得分:26)
通过踩到代码来弄清楚它。问题是超级选择没有被修改。所以我把代码更改为:
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")
}
}
}
现在它正在运作。
答案 2 :(得分:13)
试试这个。
override var selected: Bool {
didSet {
self.alpha = self.selected ? 0.5 : 1.0
}
}