Skip to content

Instantly share code, notes, and snippets.

@justAnotherDev
Created February 10, 2016 02:33
Show Gist options
  • Save justAnotherDev/d2830f1f9c5eadc2a88f to your computer and use it in GitHub Desktop.
Save justAnotherDev/d2830f1f9c5eadc2a88f to your computer and use it in GitHub Desktop.
UIGestureRecognizer + Closure extenstion
extension UIGestureRecognizer {
private class TargetAndSelector: NSObject {
let closure: UIGestureRecognizer -> Void
let recognizer: UIGestureRecognizer
init(recognizer: UIGestureRecognizer, closure: UIGestureRecognizer -> Void) {
self.recognizer = recognizer
self.closure = closure
}
@objc func invoke() {
self.closure(self.recognizer)
}
}
convenience init(closure: UIGestureRecognizer -> Void) {
self.init()
let handler = TargetAndSelector(recognizer: self, closure: closure)
self.addTarget(handler, action: "invoke")
objc_setAssociatedObject(self, "_closure", handler, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment