Junior — Middle
How can subscription to change of the alpha property in an object or component be implemented?
sobes.tech AI
Answer from AI
In iOS, there are several approaches to subscribe to changes in the alpha property of an object or component:
- Key-Value Observing (KVO) — allows observing changes to object properties.
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 changed to \(newAlpha)")
}
}
}
deinit {
view.removeObserver(self, forKeyPath: "alpha")
}
}
-
Using Combine (iOS 13+) — you can create a
Publisherfor the property and subscribe to changes. -
Overriding the property — if it's your own class, you can add a
didSetobserver:
class CustomView: UIView {
override var alpha: CGFloat {
didSet {
print("Alpha changed to \(alpha)")
}
}
}
The choice of method depends on the context and compatibility requirements.