UISwipeGesture没有处理侦听touchesBegan的视图

时间:2013-01-24 01:40:16

标签: ios uiswipegesturerecognizer

我正在使用星级评级控件。

https://github.com/erndev/EDStarRating

我需要的是,当用户在该控制器上向左滑动时,会触发一个方法。因此,我在该视图上添加了一个滑动手势。

UISwipeGestureRecognizer* gesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeHappened)];
gesture.direction  = UISwipeGestureRecognizerDirectionLeft;
gesture.numberOfTouchesRequired = 1;
[self.view addGestureRecognizer:gesture];

但我想,控制器的触控识别器会取消滑动手势识别器。

那我在哪里?我该怎么办?

3 个答案:

答案 0 :(得分:1)

[self.view addGestureRecognizer:gesture];

答案 1 :(得分:0)

如果其上有其他手势识别器,请将控制器设为滑动手势的委托并返回YES gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

答案 2 :(得分:0)

iOS中提供的所有手势只是触摸和拖动事件的包装。

予。如果视图中存在触摸事件代理,则手势识别将不适用于同一视图。

II。如果您在基本视图上有一个子视图,并且基本视图中有touche事件代表,并且您希望在子视图上实现手势,那么您可以执行此操作,只需要告知实现的手势即可取消其上可用的触摸由于基本视图。这可以在手势上使用 cancelTouchesInView 方法实现。 如果你是第二种情况,那么在你的手势实现代码中添加以下行。

gesture.cancelTouchedInView = YES;