我在scrollView上安装了一个手势识别器(在默认识别器的上面)。我正在尝试启用它,并在某些缩放级别禁用它,但它不起作用。我使用以下命令:
[self.pinchGesture setEnabled:NO];
and
[self.pinchGesture setEnabled:YES];以启用和禁用挤压手势。我正在尝试调试它,并使用此代码打印出我的手势的描述:
NSArray *gestures = [self.scrollView gestureRecognizers];
for (UIGestureRecognizer *gesture in gestures) {
NSLog(@"%s, gesture: %@", __FUNCTION__, [gesture description]);
}我看到我的自定义手势看起来像这样:
gesture: <UIPinchGestureRecognizer: 0x88a62d0; state = Possible; enabled = NO; view = <UIScrollView 0x880c360>; target= <(action=handlePinch因此,即使它被设置为enabled = NO,pinch仍然调用handlePinch:方法。这是有原因的吗?或者,我是否需要使用[self.scrollView setGestureRecognizers:<#(NSArray *)#>来移除那个挤压手势?如果我要使用这种方法,我是否必须遍历scrollView手势,保存对这些手势的引用,然后设置这些手势,这样就不会设置回我的自定义收缩手势?谢谢。
发布于 2012-01-21 03:37:22
enabled scrollview就是这样做的:启用和禁用scrollview。手势识别器是一种不同的动物,类似于你的滚动视图,但它们的行为几乎是独立的。为什么不移除手势的目标而不是禁用,然后在启用时重新添加目标?或者,设置一个布尔值,当布尔值为YES时,目标方法将检查并忽略该手势。
https://stackoverflow.com/questions/8946833
复制相似问题