1

我正在使用星级控制。

https://github.com/erndev/EDStarRating

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

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

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

那么我错在哪里了?我能做些什么?

4

3 回答 3

1
[self.view addGestureRecognizer:gesture];
于 2013-01-24T01:42:42.613 回答
0

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

I. 如果您的视图上存在触摸事件委托,则手势识别将无法在同一视图上工作。

二、如果您在基础视图上有一个子视图,并且基础视图存在触摸事件委托,并且您想在子视图上实现手势,那么您可以这样做,只需告诉已实现的手势以取消其上可用的触摸由于基础视图。您可以在手势上使用cancelTouchesInView方法来实现这一点。如果您是第二种情况,请在您的手势实现代码中添加以下行。

gesture.cancelTouchedInView = YES;
于 2013-01-24T06:24:55.897 回答
0

如果它上面有其他手势识别器,请让您的控制器成为滑动手势的代表并YES返回gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

于 2013-01-24T04:55:37.160 回答