iOS 判断滑动等手势结束

两种方式

一种是通过手势的代理

另一种是通过selecter传参,把手势给传下去

在对应的方法中通过 UIGestureRecognizer或者他的子类的state属性获取手势状态.

下面是state所有枚举值对应的作用。

    UIGestureRecognizerStatePossible,   // the recognizer has not yet recognized its gesture, but may be evaluating touch events. this is the default state
    
    UIGestureRecognizerStateBegan,      // the recognizer has received touches recognized as the gesture. the action method will be called at the next turn of the run loop
    UIGestureRecognizerStateChanged,    // the recognizer has received touches recognized as a change to the gesture. the action method will be called at the next turn of the run loop
    UIGestureRecognizerStateEnded,      // the recognizer has received touches recognized as the end of the gesture. the action method will be called at the next turn of the run loop and the recognizer will be reset to UIGestureRecognizerStatePossible
    UIGestureRecognizerStateCancelled,  // the recognizer has received touches resulting in the cancellation of the gesture. the action method will be called at the next turn of the run loop. the recognizer will be reset to UIGestureRecognizerStatePossible
    
    UIGestureRecognizerStateFailed,     // the recognizer has received a touch sequence that can not be recognized as the gesture. the action method will not be called and the recognizer will be reset to UIGestureRecognizerStatePossible
    
    // Discrete Gestures – gesture recognizers that recognize a discrete event but do not report changes (for example, a tap) do not transition through the Began and Changed states and can not fail or be cancelled
    UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded // the recognizer has received touches recognized as the gesture. the action method will be called at the next turn of the run loop and the recognizer will be reset to UIGestureRecognizerStatePossible

举例

- (void)panAction:(UIPanGestureRecognizer *)pan {
    // 根据上次和本次移动的位置,算出一个速率的point
    if(pan.state == UIGestureRecognizerStateBegan){
        NSLog(@"手势开始");
    }else if(pan.state == UIGestureRecognizerStateEnded){
        NSLog(@"手势结束");
    }
}

你可能感兴趣的:(objective-c,ios,ios,OC)