动画前的代码在动画结束前不会执行?

时间:2012-12-10 15:04:00

标签: objective-c ios multithreading core-animation

所以,我在我的一个方法中有这个代码,它生成一个新的随机单词,在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];
}

1 个答案:

答案 0 :(得分:3)

UIWebview在另一个线程中加载HTML。完成后,它会告知其代理人webViewDidFinishLoad:

因此动画将首先显示。

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

中制作动画