Today we'll check out a library called Tactile. It's a "Swiftier" way to respond to gesture recognizers and control events. Let's get started.
Tactile gives us a safer, more idiomatic way to install/react to gesture recognizers (Check Bite #38 for gesture basics).
In it's simplest form, Tactile works like this:
let tapGR = UITapGestureRecognizer()
tapGR.numberOfTapsRequired = 2
view.on(tapGR) { (tapGR: UITapGestureRecognizer) in
// ...
}
We can also react to specific state changes:
let panGR = UIPanGestureRecognizer()
view.on(panGR, [.Began, .Ended], beganOrEnded)
func beganOrEnded(panGR: UIPanGestureRecognizer) {
// ...
}
Tactile also adds similar functions to UIControl:
button.on(.TouchUpInside, tapped)
button.on([
.TouchUpInside: tapped,
.TouchUpOutside: cancelledTap
])
We can attach a single recognizer to multiple views:
viewA.on(tapGR, { tapGR in /* ... */ })
viewB.on(tapGR, { tapGR in /* ... */ })
Last but not least, we can remove all recognizers with
view.off()
just one with:
view.off(tap)
or all of a type with:
view.off(UITapGestureRecognizer.self)
More info about Tactile can be found at git.io/tactile