Junior — Middle
Comment peut-on implémenter un abonnement aux changements de la propriété alpha dans un objet ou un composant?
sobes.tech IA
Réponse de l'IA
Sur iOS, pour s’abonner aux changements de la propriété alpha d’un objet ou d’un composant, plusieurs approches sont possibles :
- Observation de valeur-clé (KVO) — permet de surveiller les changements des propriétés des objets.
class ViewObserver: NSObject {
var view: UIView
init(view: UIView) {
self.view = view
super.init()
view.addObserver(self, forKeyPath: "alpha", options: [.new, .old], context: nil)
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "alpha" {
if let newAlpha = change?[.newKey] as? CGFloat {
print("L’alpha a changé en \(newAlpha)")
}
}
}
deinit {
view.removeObserver(self, forKeyPath: "alpha")
}
}
-
Utilisation de Combine (iOS 13+) — il est possible de créer un
Publisherpour la propriété et de s’y abonner pour recevoir les changements. -
Redéfinition de la propriété — si c’est votre propre classe, vous pouvez ajouter un observateur
didSet:
class CustomView: UIView {
override var alpha: CGFloat {
didSet {
print("L’alpha a changé en \(alpha)")
}
}
}
Le choix de la méthode dépend du contexte et des exigences de compatibilité.