Iphone iOS:如何使手势识别器在动画发生时更灵敏?

Iphone iOS:如何使手势识别器在动画发生时更灵敏?,iphone,ios4,uigesturerecognizer,Iphone,Ios4,Uigesturerecognizer,我在UIViewController页面中有4个子视图,它们排列成网格。有时,动画将在子视图上运行。我正在尝试识别其中一个子视图上的点击(使用UITapGestureRecognizer) 现在,当动画未运行时,轻敲将被顺利识别。但是,当动画正在运行时,我的大多数点击根本无法识别(即使动画正在另一个子视图上运行) 有没有办法提高手势识别器的优先级而不是动画?如有任何建议,我们将不胜感激。谢谢这听起来像是主线程堵塞的经典案例。多线程将解决您的问题 这样做: -(void)performAnimat

我在UIViewController页面中有4个子视图,它们排列成网格。有时,动画将在子视图上运行。我正在尝试识别其中一个子视图上的点击(使用UITapGestureRecognizer)

现在,当动画未运行时,轻敲将被顺利识别。但是,当动画正在运行时,我的大多数点击根本无法识别(即使动画正在另一个子视图上运行)

有没有办法提高手势识别器的优先级而不是动画?如有任何建议,我们将不胜感激。谢谢

这听起来像是主线程堵塞的经典案例。多线程将解决您的问题

这样做:

-(void)performAnimations{
    //Do your animations in this method
}
[self performSelectorInBackground:@selector(performAnimations)];
使用单独的方法制作动画后,您可以自由地执行此操作:

-(void)performAnimations{
    //Do your animations in this method
}
[self performSelectorInBackground:@selector(performAnimations)];

这将使主线程可以自由识别触摸事件:)

问题是由于将动画选项设置为0。添加
UIViewAnimationOptionAllowUserInteraction
作为动画选项后,它工作得很好。

我尝试了这一点,但仍然得到了相同的效果-在运行动画时没有响应。在多线程工作之前有什么需要配置的吗?如果您添加了一个自动释放池,并且您的动画可以很好地使用新的方法结构,那么现在可能是清理动画代码的时候了。根据我的经验,iPodtouch 2G及以上几乎可以接受任何正常使用情况。我真的想不出还有什么能让手势识别更灵敏的了。很抱歉