我有一种方法来处理我在别处声明的双滑动手势:
-(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显示“双刷”但不显示向左或向右滑动。
答案 0 :(得分:1)
识别器的direction
属性会告诉您识别器处理的方向(就像您配置它一样),而不是实际滑动的方向。
您可以将locationInView:
方法与state
属性结合使用,以确定滑动的开始和结束位置。
虽然每个方向使用一个识别器可能更容易。