UISwipeGestureRecognizer 向左滑动手指向上

UISwipeGestureRecognizer swipe left and finger up

我正在使用 UISwipeGestureRecogizer 通过 UISwipeGestureRecognizerDirectionRightUISwipeGestureRecognizerDirectionLeft 滑动 leftright,它的工作完全正常,但默认滑动是太敏感了,比敲一下多一点点。

有什么方法可以让它像 scrollView 工作时它的 paging enable 属性 是真的,直到用户不抬起手指,它的工作不工作。
如果视图不随着手指的移动而移动就好了,并且只有在执行 leftright 手势并抬起手指时才有效。谢谢。

A UISwipeGestureRecognizer 不会为您提供任何更改灵敏度或滑动的任何其他方面的选项。要获得对滑动的更多控制,您可以使用以下之一:

UIPanGestureRecognizer

下面是 UIPanGestureRecognizer 可以尝试的东西:

- (void)handleGesture:(UIPanGestureRecognizer *)gestureRecognizer{
    CGPoint velocity = [gestureRecognizer velocityInView:yourView];
    if(velocity.x > 0){
        //Right gesture
    }else{
        //Left gesture
    }
}

UIResponder

所有UIViews继承自UIResponder,因此可以使用touchesBegantouchesMovedtouchesEnded方法来计算触摸。尝试这样的事情:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    UITouch *touch = [touches anyObject];
    start = [touch locationInView:self.view];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    CGPoint end = [touch locationInView:self.view];   
    //Compare start and end points here.
}