我正在开发一个 iPad 应用程序。我有一个用户可以用手指绘制的视图。这个视图有一个子视图,它是一个计算器,并且有按钮。
我希望当用户触摸按钮时,超级视图(用户可以在其中绘制)不考虑这种触摸。(所以用户在触摸计算器时不会画画)
最好不要更改计算器视图的代码和我的超级视图的代码。我只能通过另一个类的属性访问它们。
请问有办法解决问题吗?我尝试了exclusiveTouch,但它不起作用。
我正在开发一个 iPad 应用程序。我有一个用户可以用手指绘制的视图。这个视图有一个子视图,它是一个计算器,并且有按钮。
我希望当用户触摸按钮时,超级视图(用户可以在其中绘制)不考虑这种触摸。(所以用户在触摸计算器时不会画画)
最好不要更改计算器视图的代码和我的超级视图的代码。我只能通过另一个类的属性访问它们。
请问有办法解决问题吗?我尝试了exclusiveTouch,但它不起作用。
如果您可以访问按钮操作和绘图手势,您可以简单地设置:
gesture.enabled = NO;
取消当前的手势处理和/或阻止它启动。何时要重新启用手势取决于它的类型和使用方式,但立即执行(在下一行)可能会正常工作。
试试这个,但包含UIGestureRecognizerDelegate
在你的头文件中。
这是来自苹果“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;
}