UIViewAnimation阻止用户交互

时间:2011-07-08 10:22:47

标签: iphone objective-c animation

我有一个UIView跟随用户的手指,因为他们在我的应用程序内移动它。有时,屏幕上的其他内容是使用UIViewAnimation块进行动画处理,但这会冻结他们手指的跟踪,因此如果他们在动画期间继续移动他们的手指,则不会跟随。如何阻止动画阻塞主线程?

4 个答案:

答案 0 :(得分:10)

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

一起使用

答案 1 :(得分:1)

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

Apple NSObject Documentation

中的更多详情

答案 2 :(得分:0)

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

要摆脱这种情况,我们可以使用blocksGCD来优化我们的代码。

答案 3 :(得分:0)

请注意,如果您链​​接iOS 5,此问题将自行消失。在iOS 5下,视图的基于块的动画不会关闭其他视图的用户交互。这就是Apple应该首先做的事情。