UIViewAnimation阻止用户交互

问题描述:

我有一个UIView跟随用户手指,因为他们在我的应用程序内移动它。有时候,屏幕上的其他东西都会使用UIViewAnimation块进行动画处理,但是这会冻结对手指的跟踪,所以如果他们在动画期间继续移动手指,则不会跟随。我怎样才能阻止动画阻止主线程?UIViewAnimation阻止用户交互

尝试使用UIViewAnimationOptionAllowUserInteraction[UIView animateWithDuration:delay:options:animations:completion:]

如果屏幕上还有其他东西是动画的,那么也可以在主线程中完成。当前的手指跟踪也将在主线程中完成。所以肯定会有一些阻塞。

为了摆脱这一点,我们可以使用blocksGCD来优化我们的代码。

您可以使用NSObject的的方法:performSelector:onThread:withObject:waitUntilDone:

的更多细节Apple NSObject Documentation

请注意,如果您链​​接了iOS 5的这个问题就会迎刃而解所有的本身。在iOS 5下,视图的基于块的动画不会关闭其他视图的用户交互。这是苹果首先应该做的。