将UIGestureRecognizer参数传递给选择器

时间:2011-09-06 22:56:57

标签: iphone objective-c cocoa-touch

我有一种方法来处理我在别处声明的双滑动手势:

-(void)handleDoubleSwipe:(UISwipeGestureRecognizer *)recognizer
{
    NSLog(@"double swiped");
    if(recognizer.direction==UISwipeGestureRecognizerDirectionLeft) {
        NSLog(@"swiped left");
     }
     if(recognizer.direction==UISwipeGestureRecognizerDirectionRight) {
         NSLog(@"swiped right");
     }

}

我在其他地方宣布:

    UISwipeGestureRecognizer *doubleSwipe=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleSwipe:)];
    doubleSwipe.numberOfTouchesRequired=2;
    doubleSwipe.delegate=self;
    doubleSwipe.direction=UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft;

问题是我无法用任何参数提供选择器。它只是不允许我和自动完成返回0完成。如何将doubleSwipe手势添加到选择器的参数?现在,handleDoubleSwipe方法确实被调用,NSLog显示“双刷”但不显示向左或向右滑动。

1 个答案:

答案 0 :(得分:1)

识别器的direction属性会告诉您识别器处理的方向(就像您配置它一样),而不是实际滑动的方向。

您可以将locationInView:方法与state属性结合使用,以确定滑动的开始和结束位置。

虽然每个方向使用一个识别器可能更容易。

相关问题