因此,我在我的一种方法中使用了这段代码,它会生成一个新的随机词,将其显示在 WebView 中,然后为页面 curl 设置动画以从当前词过渡到新词。理想情况下,这应该 curl 旧 View ,并在下面的页面上显示新 View 。
目前,动画发生(页面 curl ),然后在 curl 完成后加载新内容(意味着 curl 下方的页面上有旧词,直到 curl 完成,此时新内容出现)。我不知道这是为什么,有人能给我解释一下吗?这可能与我的 [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。当它完成时,它告诉它的委托(delegate) webViewDidFinishLoad:
因此动画将首先显示。
您可以将 webview 的委托(delegate)设置为您自己,并在 webViewDidFinishLoad:
中执行动画
关于objective-c - 在动画完成之前不执行动画之前的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13803506/