KeypathObserver 1.0.0

KeypathObserver 1.0.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Sep 2016
SPMSupports SPM

Maintained by nixzhu.



KeypathObserver

KVO observing with simple syntax.

Requirements

Swift 2.3, iOS 8.0

Example

class ViewController: UIViewController {

    var view: UIView?
    var centerObserver: KeypathObserver<UIView, CGPoint>?
    var colorObserver: KeypathObserver<UIView, UIColor>?

    override func viewDidLoad() {
        super.viewDidLoad()

        let view = UIView()

        self.centerObserver = KeypathObserver(
            object: view,
            keypath: "center",
            valueTransformer: { ($0 as? NSValue)?.CGPointValue() },
            valueChanged: { oldCenter, newCenter in
                print("oldCenter: \(oldCenter)")
                print("newCenter: \(newCenter)")
            }
        )

        view.center = CGPoint(x: 100, y: 100)
        view.center = CGPoint(x: 200, y: 50)

        self.colorObserver = KeypathObserver(
            object: view,
            keypath: "backgroundColor",
            valueTransformer: { $0 as? UIColor },
            valueUpdated: { newColor in
                print("newColor: \(newColor)")
            }
        )

        view.backgroundColor = UIColor.redColor()
        view.backgroundColor = nil

        self.view = view
    }
}

Installation

It’s recommended to use CocoaPods or Carthage.

Contact

NIX @nixzhu

License

KeypathObserver is available under the MIT License. See the LICENSE file for more info.