3

是否可以让特定手势失败以便识别下一个可能的手势?

更具体地说,请查看示例代码段:

UISwipeGestureRecognizer *swipeLeft = [initialize UISwipeGestureRecognizer... @selector(handleSwipe:)]

swipeLeft = UISwipeGestureRecognizerDirectionLeft;

swipeLeft.delegate = self;

UIPanGestureRecognizer *pan = [initialize UIPanGestureRecognizer... @selector(handlePan:)]

pan.delegate = self;

[pan requireGestureRecognizerToFail:swipeLeft];

上面的代码指出,如果设备无法识别向左滑动,则将使用平移手势处理程序。

所以我的问题是:是否可以根据在handleSwipe上检查的某些标准让swipeLeft故意失败(在被设备识别为向左滑动触摸之后),而让平移手势处理触摸输入?

谢谢。

4

2 回答 2

11

在此处查看UIGestureRecognizerDelegate协议:

https://developer.apple.com/library/ios/documentation/uikit/reference/UIGestureRecognizerDelegate_Protocol/Reference/Reference.html

具体来说,

gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

方法可能有用。如果你只是YES从这个方法返回,两个手势可以同时被识别,所以你可以对两者都做出正确的响应。

于 2013-08-28T14:54:39.923 回答
0

假设您为平移手势实现了一些其他处理程序,您不能这样做:

-(void)handleSwipe:(id)sender {

    if //criteria is met to ignore left swipe
    {
        [self handlePan:self];   
    }
}

-(void)handlePan:(id)sender {

    // handle pan gesture here

}
于 2013-08-28T15:02:43.880 回答