Ответ 1
И для Swift 3.0:
override var isSelected: Bool {
didSet {
alpha = isSelected ? 0.5 : 1.0
}
}
Я пытаюсь реализовать пользовательский стиль выделения для своих ячеек в UICollectionView. Несмотря на то, что это легко можно сделать вручную в методах didSelect и didDeSelect, которые я хотел бы достичь, манипулируя "выбранной" переменной в UICollectionViewCell.
У меня есть для этого код:
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 реализованы).
Как я могу это сделать? Спасибо!
И для 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
}
}