IOS:识别滑动手势

时间:2013-01-24 09:47:34

标签: ios touch uigesturerecognizer

在我的应用中,我有这段代码:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)recognizer shouldReceiveTouch:(UITouch *)touch
{

    if ([touch.view isKindOfClass:[UIScrollView class]]){
        return YES;
    }

    else return NO;
}

在此我控制我的触摸是否在scrollView内部,但现在我想检查触摸是简单触摸还是轻扫手势,有没有办法检测它? 感谢

3 个答案:

答案 0 :(得分:8)

您在上面编写的方法是UIGestureRecognizerDelegate。这是一个委托方法,当您放置观察者的特定手势被检测到时,将调用该方法。

为了识别滑动手势,您必须将Gesture识别器添加到您要检测的View上,如下所示:

UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];

您可以使用方法 handleSwipeForm:

进行手势检测

如果你想让上面的委托被调用,那么也要添加这一行,

recognizer.delegate = self;

答案 1 :(得分:0)

使用UISwipeGestureRecognizer检测滑动手势(您可以设置滑动方向:UISwipeGestureRecognizer.direction

UITapGestureRecognizer来检测分接头(UITapGestureRecognizer.numberOfTapsRequired设置所需的分接头数以触发识别器(例如双击)

答案 2 :(得分:0)

您必须使用UISwipeGestureRecognizer来检测滑动手势。

 UISwipeGestureRecognizer *swipeGest= [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)];
[swipeGest setDirection:(UISwipeGestureRecognizerDirectionRight)];
[[self view] addGestureRecognizer:swipeGest];
swipeGest.delegate = self;

setDirection用于设置滑动检测方向。

- (void)SwipeRecognizer:(UIGestureRecognizer *)gestureRecognizer
{
}

这里我们将在检测到滑动手势后编写要执行的功能。