只是想清除一件事,在iOS动画中从线程开始但在启动之前,它是否等待主UI线程完成。一旦动画开始,那么你可以在主线程中同时做任何事情。
[UIView transitionFromView:currentVisible
toView:reuseablView
duration:0.6
options:(UIViewAnimationOptionTransitionCurlUp|UIViewAnimationOptionShowHideTransitionViews)
completion:^(BOOL finished) {
}
}];
[self callFunction1];
在这里,动画以很少的延迟开始,我认为它等待functioin1调用。
任何,思想吗?
答案 0 :(得分:0)
当您调用[self callFunction1]
时,您正在阻止主线程,因此任何动画都将停止(或者在此实例中,尚未启动)。如果它是一个长时间运行的方法,你应该将它移动到另一个线程。
答案 1 :(得分:0)
动画应该在主线程上启动,虽然它实际上是在比你的应用程序访问的更高的线程上执行的,所以它仍然可以在阻塞时执行,因为核心动画渲染服务器的工作方式。确保你没有在某些网络代码中调用它。它在主线程上。如果第二种方法阻止动画可能会继续,但app和touch事件在被阻止时不起作用。如果第二种方法阻塞足够长的时间,动画的延迟可能导致它不能按时触发。但是一旦开始动画,即使使用下一个方法阻止也应该很好。我建议你不要阻止主线程。如果你想在动画之后调用该方法,它应该在完成块中。
最后要证明这一点,你可以先调用动画然后再调用sleep。您的应用程序将无法响应,但动画将继续。