Sobes.tech
Junior — Middle

Como pode implementar uma subscrição para alterações na propriedade alpha de um objeto ou componente?

sobes.tech IA

Resposta da IA

No iOS, para subscrever as alterações na propriedade alpha de um objeto ou componente, pode usar várias abordagens:

  1. Observação de Valor-Chave (KVO) — permite observar alterações nas propriedades dos objetos.
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("O alpha mudou para \(newAlpha)")
            }
        }
    }

    deinit {
        view.removeObserver(self, forKeyPath: "alpha")
    }
}
  1. Uso do Combine (iOS 13+) — pode criar um Publisher para a propriedade e subscrever-se às alterações.

  2. Sobrescrever a propriedade — se for a sua própria classe, pode adicionar um observador didSet:

class CustomView: UIView {
    override var alpha: CGFloat {
        didSet {
            print("O alpha mudou para \(alpha)")
        }
    }
}

A escolha do método depende do contexto e dos requisitos de compatibilidade.