0

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

我有一个添加到 pinchGesture 的 UIView:

[self addPinchGestureRecognizersToView:self.view];

然后我在这个 Pinch 上附加一个函数来调出一个 uiview。问题是当我捏的时候,事件发生了几次,这使得 ViewController 多次 addSubview 取决于事件发生的次数。

那么我如何才能将其实际限制为仅 1 次或在检测到夹点时将其删除。我试过了:

[self.view removeGestureRecognizer:UIPinchGestureRecognizer];

但是我得到了一个编译错误。

4

3 回答 3

1

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

于 2013-05-06T10:18:39.333 回答
0

[self.view removeGestureRecognizer:UIPinchGestureRecognizer];

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

for (UIGestureRecognizer* recognizer in [self.view.gestureRecognizers copy]) {
   if ([recognizer isKindOfClass:[UIPinchGestureRecognizer class]]) {
       [self.view removeGestureRecognizer:recognizer];
   }
}
于 2013-05-06T13:02:26.863 回答
0

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

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

于 2013-05-06T08:28:41.570 回答