我正在开发一款iPad应用。我有一个用户可以用手指画画的视图。这个视图有一个子视图,它是一个计算器,有按钮。
我希望当用户触摸按钮时,超级视图(用户可以在其中绘制)不会考虑此触摸。 (因此用户在触摸计算器时不会绘制)
最好,我不想更改计算器视图的代码和我的超级视图的代码。我只能通过另一个类的属性访问它们。
有没有办法解决问题?我尝试过exclusiveTouch,但它不起作用。
答案 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;
}