我正在尝试通过在加载页面时隐藏webView来加载不同的网页。但是,我看到一些图像密集型网站导致webViewDidFinishLoading过快启动,当我在那时显示webView然后一瞬间你得到上一页的视图。关于如何解决这个问题的任何想法?
答案 0 :(得分:4)
如果页面上有Javascript,您可能需要等待它完成。最简单的方法似乎是将一些javascript发送到要执行的页面:
-(void) webViewDidFinishLoad:(UIWebView *)webView
{
NSString *javaScript = @"<script type=\"text/javascript\">function myFunction(){return 1+1;}</script>";
[webView stringByEvaluatingJavaScriptFromString:javaScript];
// done here
}
话虽如此,我似乎仍然看到webviewDidFinishLoad中没有完全更新webview的情况。
答案 1 :(得分:3)
我也遇到过这个问题。虽然我还没有找到解决方案,但是在调用webViewDidFinishLoading委托方法之后,在显示UIWebView之前引入了0.5秒的延迟,我解决了这个问题。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[self performSelector:@selector(displayWebView) withObject:nil afterDelay:0.5];
}