尝试重写UICollectionViewCell Swift中的“选择”自定义选择状态
我想实现UICollectionView中的单元格的自定义选择样式。尽管可以在didSelect和didDeSelect方法中手动执行此操作,但我希望通过操作UICollectionViewCell中的“selected”变量来实现此目的。尝试重写UICollectionViewCell Swift中的“选择”自定义选择状态
我有这样的代码吧:
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方法实现)。
我该怎么办?谢谢!
而对于雨燕3.0:
override var isSelected: Bool {
didSet {
alpha = isSelected ? 0.5 : 1.0
}
}
这应该被选为答案,因为它对应于最新版本的iOS,并且只使用'didSet' 。 – tomas789
通过步入代码来找出它。问题在于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")
}
}
}
现在它的工作。
很高兴它的工作!你应该能够标记你的答案,因为很快 – quantumpotato
很棒.. !!帮助(Y)和竖起大拇指回答自己的问题 –
也许添加一个更新Swift 3.选择是否是“isSelected” – Starlord
试试这个。
override var selected: Bool {
didSet {
self.alpha = self.selected ? 0.5 : 1.0
}
}
你试过把一个断点,当第一个“选择”被撞了跟踪? – quantumpotato
谢谢。帮助我解决了这个问题。 super.selected没有被修改 – Julius