Objective c 动画前的代码在动画完成后才执行?

Objective c 动画前的代码在动画完成后才执行?,objective-c,ios,multithreading,core-animation,Objective C,Ios,Multithreading,Core Animation,因此,我的一个方法中有这段代码,它生成一个新的随机单词,在web视图中显示它,然后设置一个页面卷曲动画,从当前单词过渡到新单词。理想情况下,这应该卷起旧视图,并在下面的页面上显示新视图 目前,动画发生(页面卷曲),然后在完成卷曲后加载新内容(这意味着卷曲下面的页面上有旧单词,直到卷曲完成,此时新单词出现)。我不知道为什么,有人能解释给我听吗?这可能与我的[dictionary]对象返回的数据不够快有关吗 NSString *word = [dictionary randomWord]; NSSt

因此,我的一个方法中有这段代码,它生成一个新的随机单词,在web视图中显示它,然后设置一个页面卷曲动画,从当前单词过渡到新单词。理想情况下,这应该卷起旧视图,并在下面的页面上显示新视图

目前,动画发生(页面卷曲),然后在完成卷曲后加载新内容(这意味着卷曲下面的页面上有旧单词,直到卷曲完成,此时新单词出现)。我不知道为什么,有人能解释给我听吗?这可能与我的
[dictionary]
对象返回的数据不够快有关吗

NSString *word = [dictionary randomWord];
NSString *htmlDefinition = [dictionary getHTMLFor: word];
[self.randomDefinitionWebView loadHTMLString: htmlDefinition baseURL: nil];

[UIView transitionWithView: self.randomDefinitionWebView
                      duration: 1.5
                       options: UIViewAnimationOptionTransitionCurlDown
                    animations: ^ { }
                    completion: nil];
}

UIWebview在另一个线程中加载HTML。当它完成时,它告诉它的委托
webviewdiffinishload:

因此,动画将首先显示


您可以将webview的委托设置为您自己,并在
webViewDidFinishLoad:

UIWebview在另一个线程中加载HTML中执行动画。当它完成时,它告诉它的委托
webviewdiffinishload:

因此,动画将首先显示


您可以将webview的代理设置为您自己,并在
webViewDidFinishLoad:

中进行动画制作,恐怕这不起作用。代码肯定是在
webviewdiffinishload
方法中执行的,但在动画完成之前,它仍然不会加载新内容。这与页面卷曲的工作方式有关吗?Web视图在完成加载后也需要一两秒钟的时间来渲染。您可以尝试在制作动画之前添加一个延迟,以给它显示时间。我担心这不起作用。代码肯定是在
webviewdiffinishload
方法中执行的,但在动画完成之前,它仍然不会加载新内容。这与页面卷曲的工作方式有关吗?Web视图在完成加载后也需要一两秒钟的时间来渲染。您可以尝试在执行动画之前添加延迟,以给它显示时间。