webViewDidFinishLoad:太快开火?

时间:2009-09-14 15:06:39

标签: iphone

我正在尝试通过在加载页面时隐藏webView来加载不同的网页。但是,我看到一些图像密集型网站导致webViewDidFinishLoading过快启动,当我在那时显示webView然后一瞬间你得到上一页的视图。关于如何解决这个问题的任何想法?

2 个答案:

答案 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];
}
相关问题