J'essaie d'implémenter un style de sélection personnalisé pour mes cellules dans un UICollectionView. Même s'il est facilement possible de le faire manuellement dans les méthodes didSelect et didDeSelect, je voudrais y parvenir en manipulant la variable "sélectionnée" dans UICollectionViewCell.
J'ai ce code pour ça:
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")
}
}
}
Maintenant, lorsque je sélectionne une cellule, la cellule est mise en surbrillance mais "sélectionné" est imprimé deux fois et la désélection ne fonctionne pas (même si les deux méthodes UICollectionView sont implémentées).
Comment pourrais-je m'y prendre? Merci!
Et pour Swift 3.0:
override var isSelected: Bool {
didSet {
alpha = isSelected ? 0.5 : 1.0
}
}
Je l'ai compris en entrant dans le code. Le problème était que le super.selected n'était pas en cours de modification. J'ai donc changé le code en ceci:
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")
}
}
}
Maintenant ça marche.
Essaye celui-là.
override var selected: Bool {
didSet {
self.alpha = self.selected ? 0.5 : 1.0
}
}