在我的应用程序中,我有一个UIView派生类Canvas,该类使用touchesBegan: withEvent:touchesMoved: withEvent:touchesEnded: withEvent:绘制在画布上。我还想使用滑动将数组中的上一个(或下一个)画布加载。我尝试设置以下手势(以及类似的手势):

UISwipeGestureRecognizer* leftSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget: self action: @selector(pageFlipNext)];
leftSwipe.direction = UISwipeGestureRecognizerDirectionLeft;
leftSwipe.numberOfTouchesRequired = 2;
[_canvas addGestureRecognizer: leftSwipe];
[leftSwipe release];


但是我的两指滑动仍然被视为单指绘图指令。
如何使我的应用正确处理两指滑动?

最佳答案

首先,我将开始验证_canvas.multipleTouchEnabled是否设置为YES。如果不是,请将其设置为YES

您可能还需要考虑

leftSwipe.delaysTouchesBegan = YES;


这将延迟将触摸发送到_canvas的操作,直到手势失败。您也可以使用UIPanGestureRecognizer并执行类似的操作,

[pan requireGestureRecognizerToFail:leftSwipe];

10-08 16:58