0
我想在滾動動畫發生期間加載帶有數據的網頁視圖。動畫呼叫就是這樣:加載UIWebView塊滾動視圖動畫
[scrollView scrollRectToVisible:aFrame animated:YES];
問題是,如果一個web視圖負載過程中與滾動視圖的動畫重疊,動畫口吃,而不是平滑的動畫發生。看起來加載進程阻止主線程,所以動畫不能按預期工作。
我能做些什麼來解決這個問題?在一些帖子中,人們建議將webview作爲子視圖的最後部分
- (void)webViewDidFinishLoad:(UIWebView *)theWebView
方法。但是如果我這樣做,加載的數據是不可見的。
感謝您的幫助。
編輯1:
@Vlad
該解決方案是不工作我猜。我打電話的WebView負載是這樣的:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void) {
[_webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:path]];
});
但我看到的是,雖然loadHTMLString:基本URL:方法被調用在非主線程,
- (void)webViewDidStartLoad:(UIWebView *)theWebView
和
- (void)webViewDidStartLoad:(UIWebView *)theWebView
方法在主線程中調用。所以這個方法沒有提供我一個改進。
同樣作爲一個細節,webViewDidStartLoad和webViewDidFinishLoad方法之間的時間差不多0.3秒。
還能做什麼?
remmeber爲您的ivar使用__block – 2012-04-10 13:44:29
嗯,明天我會試試。我認爲應該在主線程中調用UI組件的任何方法。 – manuyavuz 2012-04-10 18:50:32
@Vlad,我試過你的解決方案,但它不工作。詳情在我的編輯。 – manuyavuz 2012-04-11 07:34:37