J'ai un UIView sous-classé dans une cellule collectionView personnalisée. Il affiche bien, mais dans la méthode de délégué "didSelect" dans mon ViewController, j'ai défini une propriété pour l'UIView qui rafraîchit avec un setNeedsDisplay et DrawRect n'est pas déclenché. Cela a-t-il quelque chose à voir avec dequeueReusableCell? Comment cela serait-il codé? C'est en rapide 1.2 pas obj-c.drawRect dans la classe UIView non appelée lors de la sélection de UICollectionViewCell dans swift
class setSelection: UIView {
private var _checked: Bool = false
override init(frame: CGRect) {
super.init(frame: frame)
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.setNeedsDisplay()
}
override func drawRect(rect: CGRect) {
super.drawRect(rect)
. . . code . . .
}
var checked: Bool {
get {
return _checked
}
set {
_checked = newValue
self.setNeedsDisplay()
println(_checked)
}
}
Ceci est la classe UIView. la propriété checked est définie dans collectionView didSelectCell. Le paramètre setNeedsDisplay dans la propriété n'échoue pas mais drawRect ne sera plus jamais appelé. ** UPDATE ** Les fonctions init ne sont pas obligatoires et doivent être supprimées.
Dans viewController, j'ai défini une propriété dans la classe UIView qui exécute setNeedsDisplay. Le drawRect n'est pas exécuté. – cheborneck
L'instruction setNeedsDisplay est exécutée mais le drawRect n'est déclenché que lorsque la classe est initialisée. – cheborneck
J'ai essayé de publier un extrait de code, mais je n'ai pas pu le mettre en forme. – cheborneck