Junior — Middle
Cum se poate implementa o abonare la modificările proprietății alpha într-un obiect sau componentă?
sobes.tech AI
Răspuns de la AI
Pe iOS, pentru abonarea la modificările proprietății alpha a unui obiect sau component, se pot folosi mai multe abordări:
- Observarea Valoare-Cheie (KVO) — permite monitorizarea modificărilor proprietăților obiectelor.
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("Alpha a fost schimbat în \(newAlpha)")
}
}
}
deinit {
view.removeObserver(self, forKeyPath: "alpha")
}
}
-
Utilizarea Combine (iOS 13+) — se poate crea un
Publisherpentru proprietate și se poate subscrie la modificări. -
Suprascrierea proprietății — dacă este propria ta clasă, poți adăuga un observator
didSet:
class CustomView: UIView {
override var alpha: CGFloat {
didSet {
print("Alpha a fost schimbat în \(alpha)")
}
}
}
Alegerea metodei depinde de context și de cerințele de compatibilitate.