ios:pinchGesture只发生过一次

时间:2013-05-06 08:12:51

标签: ios ipad gesture pinch

在IOS 6中,如何添加仅检测一次的PinchGesture?

我有一个UIView,我添加到pinchGesture:

[self addPinchGestureRecognizersToView:self.view];

然后我将一个函数附加到此Pinch以调出一个uiview。问题是当我捏,事件发生几次,使ViewController多次添加子视图取决于事件发生的次数。

那么我怎样才能将其实际限制为1次或在检测到捏时将其移除。我试过了:

[self.view removeGestureRecognizer:UIPinchGestureRecognizer];

但是我遇到了编译错误。

3 个答案:

答案 0 :(得分:1)

感谢所有建议。我只想到了最简单的解决方案 - 添加一个BOOLEAN进行检查。其余的工作就像一个魅力。

答案 1 :(得分:0)

你应该知道捏手势是一个连续的手势。也就是说,在触摸过程中可以多次识别它。

如果您只想识别一次,则可以在第一次识别时将其删除。您收到编译错误的原因是您应该“记住”您的手势并在以后删除它。

答案 2 :(得分:0)

[self.view removeGestureRecognizer:UIPinchGestureRecognizer];

此方法调用无效。 UIPinchGestureRecognizer是一个类而不是实例。您必须使用添加的正确识别器替换它。

for (UIGestureRecognizer* recognizer in [self.view.gestureRecognizers copy]) {
   if ([recognizer isKindOfClass:[UIPinchGestureRecognizer class]]) {
       [self.view removeGestureRecognizer:recognizer];
   }
}