Iphone 在iOS中,GestureRecogizer目标操作是否在单独的线程中运行?

Iphone 在iOS中,GestureRecogizer目标操作是否在单独的线程中运行?,iphone,objective-c,ios,Iphone,Objective C,Ios,问题是,在我的iPhone应用程序的UI上,我有一个按钮和另一个接受触摸手势识别器的imageView,两者都有目标动作。如果我一次按一个按钮和一个视图,一切都很好。但如果我同时触摸这两个,或者快速连续触摸,事情就会变得一团糟。按钮和手势处理程序操作相同的状态变量,因此,如果它们并排运行,则结果是不确定的 我试图通过在进入手势识别器处理程序时禁用该按钮,并在退出该处理程序之前启用该按钮来解决此问题。但这并不能解决我的问题 因此,唯一的可能性(我猜)是当按钮处理程序运行时,会触发手势识别器。但这只

问题是,在我的iPhone应用程序的UI上,我有一个按钮和另一个接受触摸手势识别器的imageView,两者都有目标动作。如果我一次按一个按钮和一个视图,一切都很好。但如果我同时触摸这两个,或者快速连续触摸,事情就会变得一团糟。按钮和手势处理程序操作相同的状态变量,因此,如果它们并排运行,则结果是不确定的

我试图通过在进入手势识别器处理程序时禁用该按钮,并在退出该处理程序之前启用该按钮来解决此问题。但这并不能解决我的问题


因此,唯一的可能性(我猜)是当按钮处理程序运行时,会触发手势识别器。但这只有在它们位于不同的线程中时才会发生。那么,有人知道手势识别器处理程序是否在另一个线程中运行吗?或者,更具体地说,针对我的问题,我应该在我的情况下做什么?使用保护变量防止冲突?

将此代码放入实现手势识别器委托的类中

-(BOOL)GestureRecognitor:(UIGestureRecognitor*)GestureRecognitor应与GestureRecognitor:(UIGestureRecognitor*)其他GestureRecognitor同时识别
{
返回YES;

}

你能发布两个处理程序中的任何代码吗?我发现了问题:如果我同时点击按钮和图像,禁用按钮没有任何帮助,因为按钮事件在禁用之前被触发;由于我的手势处理程序使用计时器在1秒后执行某些操作,因此按钮处理程序在1秒后被调用,结果出错。最后我使用了guard变量来解决这个问题。但这里的问题仍然有效,是否有人知道手势识别器处理程序是否在与主UI相同的线程或其他线程中被调用。它们在主UI线程上被调用。