使用 UIGesture 的最佳方式
因为 tapGesture 只有一个状态,所以它只有一个方法 whenTapped
view.nc_addTapGestureWithConfigClosure { (tapGestureRecognizer) -> () in
// Configure gesture recognizer,like this:
tapGestureRecognizer.numberOfTapsRequired=2
}.whenTapped {(tapGestureRecognizer) -> () in
//doSomething()
}
// or you can directly do something
view.nc_whenTapped {(tapGestureRecognizer) -> () in
//doSomething()
}
如果您要配置手势,使用此方法
view.nc_addxxxxGestureWithConfigClosure({ (gestureRecognizer) -> () in
//Configure gesture recognizer
})
如果不需要配置,使用此方法以启动
view.nc_addxxxxGesture()
然后,您可以添加您想要的处理器函数
view.nc_addPanGesture()
.whenBegan { (recognizer) -> Void in
}.whenCancelled { (recognizer) -> Void in
}.whenChanged { (recognizer) -> Void in
}.whenEnded { (recognizer) -> Void in
}.whenFailed { (recognizer) -> Void in
}
使用 SwipeGesture 的便捷方式
view.nc_whenSwipedInDirection(.Down) { (gestureRecognizer) in
}
或者如果您为多个状态设置一个处理器,请使用 whenStatesHappend
lbState.nc_addPanGesture().whenStatesHappend([.Ended,.Changed]) { (gestureRecognizer) -> Void in
}
自定义 gestureRecognizerHandler 由 UIGestureRecognizer 保留,UIGestureRecognizer 由目标视图保留,所以如果您使用 self 属性,请记住显式 [unowned self]
以避免保留周期
lbState.nc_whenSwipedInDirection(.Down) {[unowned self] (gestureRecognizer) in
self.lbState.text="Down"
}
只需将 NiceGesture 文件夹下的文件复制到您的项目中即可
微博 : @没故事的卓同学
NiceGesture
在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。