ios动画以延迟开始

时间:2013-01-31 12:05:13

标签: ios animation

只是想清除一件事,在iOS动画中从线程开始但在启动之前,它是否等待主UI线程完成。一旦动画开始,那么你可以在主线程中同时做任何事情。

[UIView transitionFromView:currentVisible
                                toView:reuseablView
                              duration:0.6
                               options:(UIViewAnimationOptionTransitionCurlUp|UIViewAnimationOptionShowHideTransitionViews)            
                            completion:^(BOOL finished) {
                                }
                            }];

[self callFunction1];

在这里,动画以很少的延迟开始,我认为它等待functioin1调用。

任何,思想吗?

2 个答案:

答案 0 :(得分:0)

当您调用[self callFunction1]时,您正在阻止主线程,因此任何动画都将停止(或者在此实例中,尚未启动)。如果它是一个长时间运行的方法,你应该将它移动到另一个线程。

答案 1 :(得分:0)

动画应该在主线程上启动,虽然它实际上是在比你的应用程序访问的更高的线程上执行的,所以它仍然可以在阻塞时执行,因为核心动画渲染服务器的工作方式。确保你没有在某些网络代码中调用它。它在主线程上。如果第二种方法阻止动画可能会继续,但app和touch事件在被阻止时不起作用。如果第二种方法阻塞足够长的时间,动画的延迟可能导致它不能按时触发。但是一旦开始动画,即使使用下一个方法阻止也应该很好。我建议你不要阻止主线程。如果你想在动画之后调用该方法,它应该在完成块中。

最后要证明这一点,你可以先调用动画然后再调用sleep。您的应用程序将无法响应,但动画将继续。

相关问题