0

这意味着用户不能同时平移和捏合,并且捏合手势停止平移一。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {

    return YES;
}

这段代码对我不起作用,因为它使这些手势同时工作。

默认情况下,如果我不使用此代码,则平移手势会停止捏一个,但我需要相反的东西。

更新

@interface SomeClass : UIViewController <UIGestureRecognizerDelegate>

...

@end

@implementation SomeClass

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {

        return YES;
    }

@end
4

2 回答 2

1

您可以使用该方法在识别器之间创建依赖关系,requireGestureRecognizerToFail:以便一个手势只有在另一个手势失败时才有资格开始。

根据您的具体需要,您可能需要子类化并创建自己的手势,以便您可以控制它们开始和失败的方式和时间。

于 2013-08-12T13:32:44.683 回答
1

通过编辑平移手势处理程序解决:

- (IBAction)panGRUsed:(id)sender {

    UIPanGestureRecognizer *gr = (UIPanGestureRecognizer *)sender;
    if (gr.numberOfTouches > 1) {

        [gr setTranslation:CGPointZero inView:self.view];
    } else {

        ...
    }
}
于 2013-08-12T13:33:16.920 回答