滑动手势识别器不会触发方法调用

时间:2013-10-08 22:42:22

标签: ios

我在viewDidLoad中添加了几个滑动手势识别器,但未调用指定的选择器:

UISwipeGestureRecognizer *swipeGestureRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleRightSwipe:)];
swipeGestureRight.numberOfTouchesRequired = 1;
swipeGestureRight.direction = (UISwipeGestureRecognizerDirectionRight);
[self.scrollView addGestureRecognizer:swipeGestureRight];

UISwipeGestureRecognizer *swipeGestureLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftSwipe:)];
swipeGestureLeft.numberOfTouchesRequired = 1;
swipeGestureLeft.direction = (UISwipeGestureRecognizerDirectionLeft);
[self.scrollView addGestureRecognizer:swipeGestureLeft];

如果我将选择器更改为@selector(crashAtRunTimeWithUndefinedMethod :),则没有任何反应。 视图控制器继承自UIGestureRecognizerDelegate。在上面的代码中没有设置手势识别器的代理,但添加它并将其设置为自己并没有任何区别。

scrollView是控制器主视图的子视图,但我尝试将目标更改为主视图,这也没有区别。

1 个答案:

答案 0 :(得分:1)

UIScrollView已经预先配置了手势识别器,可以检测滑动(以及其他手势,如平移)。记录保存手势识别UIScrollView的数组,您将看到它们。

并不是你不能为UIScrollView添加额外的手势识别器,但你必须要小心。在我自己的应用程序中,我向UIScrollView添加了一个轻敲手势识别器,没有问题,因为它不会与任何预先配置的手势识别器竞争。