NiceGesture:现在你可以舒服的使用UIGesture了

我一直觉得iOS中的UIGesture使用起来非常别扭,在github上搜了一圈也没有顺手的,于是我就自己撸了一个:NiceGesture。

使用

TapGesture:

因为tap手势只有一种状态,所以这个手势的处理只需要调用whenTapped方法:

  view.nc_whenTapped {(tapGestureRecognizer) -> () in
        //doSomething()
  }

如果你需要配置tapGestureRecognizer,就先调用nc_addTapGestureWithConfigClosure方法,在这个参数闭包里配置,接着继续调用whenTapped方法:


  view.nc_addTapGestureWithConfigClosure { (tapGestureRecognizer) -> () in
            // Configure gesture recognizer,like this:
            tapGestureRecognizer.numberOfTapsRequired=2
        }.whenTapped {(tapGestureRecognizer) -> () in
            //doSomething()
        }

其他手势:

如果你需要配置这些手势,如上面tap的处理方法,调用nc_addxxxxGestureWithConfigClosure方法:


  view.nc_addxxxxGestureWithConfigClosure({ (gestureRecognizer) -> () in
        //Configure gesture recognizer
  })

如果不需要配置,直接调用add方法就可以:


  view.nc_addxxxxGesture()

接着,重点来了,在添加完手势后,支持链式编程,可以连续处理几种不同的状态,避免了代码嵌套的问题,代码看起来也会更整洁。


   view.nc_addPanGesture()
       .whenBegan { (gestureRecognizer) -> Void in
            
       }.whenCancelled { (gestureRecognizer) -> Void in
            
       }.whenChanged { (gestureRecognizer) -> Void in
            
       }.whenEnded { (gestureRecognizer) -> Void in
            
       }.whenFailed { (gestureRecognizer) -> Void in
            
       }

好吧,有的时候你会想用一个闭包同时处理几种状态,那么你就使用 whenStatesHappend 方法,参数是一个手势识别state的数组:


lbState.nc_addPanGesture().whenStatesHappend([.Ended,.Changed]) { (gestureRecognizer) -> Void in
            
        }

安装

支持pod

在pod file中输入以下:

platform :ios, '8.0'
use_frameworks!

pod 'NiceGesture'

Carthage

近期会支持,请稍候。

联系我

欢迎提建议,可以直接提issue,或者微博上联系我也行:@没故事的卓同学。
谢谢支持。

你可能感兴趣的:(NiceGesture:现在你可以舒服的使用UIGesture了)