在我的应用程序中,我有一个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];