CocoaPods trunk is moving to be read-only. Read more on the blog, there are 2 months to go.

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.