スクロール アニメーションの発生中に Web ビューにデータを読み込もうとしています。アニメーション呼び出しは次のようになります。
[scrollView scrollRectToVisible:aFrame animated:YES];
問題は、Web ビューのロード プロセスがスクロールビュー アニメーションとオーバーラップする場合、アニメーションが途切れ、スムーズなアニメーションが発生しないことです。ロード プロセスがメイン スレッドをブロックしているように見えるため、アニメーションが期待どおりに動作しません。
この問題を解決するにはどうすればよいですか? 一部の投稿では、webview をサブビューとして最後の部分に配置することを提案しています。
- (void)webViewDidFinishLoad:(UIWebView *)theWebView
方法。しかし、私がそれを好きなら、ロードされたデータは見えません。
手伝ってくれてありがとう。
編集1:
@ヴラド
この解決策は機能していないと思います。私は次のように webview load を呼び出しています:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void) {
[_webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:path]];
});
しかし、 loadHTMLString: baseURL: メソッドが非メインスレッドで呼び出されているにもかかわらず、
- (void)webViewDidStartLoad:(UIWebView *)theWebView
と
- (void)webViewDidStartLoad:(UIWebView *)theWebView
メソッドはメインスレッドで呼び出されます。したがって、この方法では改善されませんでした。
また詳細として、webViewDidStartLoad メソッドと webViewDidFinishLoad メソッドの間の経過時間は約 0.3 秒です。
他に何をしますか?