在按钮操作上取消手势识别器

时间:2013-08-26 08:37:22

标签: ios uiview uigesturerecognizer uitouch

我正在开发一款iPad应用。我有一个用户可以用手指画画的视图。这个视图有一个子视图,它是一个计算器,有按钮。

我希望当用户触摸按钮时,超级视图(用户可以在其中绘制)不会考虑此触摸。 (因此用户在触摸计算器时不会绘制)

最好,我不想更改计算器视图的代码和我的超级视图的代码。我只能通过另一个类的属性访问它们。

有没有办法解决问题?我尝试过exclusiveTouch,但它不起作用。

2 个答案:

答案 0 :(得分:2)

如果您可以访问按钮操作和绘图手势,则只需设置:

gesture.enabled = NO;

取消当前手势处理和/或阻止其启动。当您想要重新启用时,手势取决于它的类型和使用方式,但立即执行(在下一行)可能会正常工作。

答案 1 :(得分:1)

尝试此操作但在您的标头文件中包含UIGestureRecognizerDelegate

这是来自Apple“SimpleGestureRecognizers”的例子 -

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{
    // Disallow recognition of tap gestures in the segmented control.
    if ((touch.view == YourButton)) 
    {
        //change it to your condition
        return NO;
    }

    return YES;
}