在webViewDidFinishLoad完成之前,如何防止webView可见?

时间:2014-04-29 09:11:52

标签: ios objective-c

我正在删除webViewDidFinishLoad中的webView内容。问题是它首先加载页面并显示所有内容,然后你会看到我删除的内容消失。我希望它能让用户看不到任何消失,因此内容永远不会显示给用户。

这是我的方法:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString* script = [NSString stringWithFormat:@"document.getElementById('menu').style.display='none';"];
    [self.webView stringByEvaluatingJavaScriptFromString:script];
    NSLog(@"gets");
}

4 个答案:

答案 0 :(得分:1)

诀窍是使用isLoading属性。

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
     if(!webView.isLoading){
          //Has completely stopped..
     }
}

答案 1 :(得分:0)

使用webview.hidden = YES,直到您不想看到数据然后再将其设置为no

答案 2 :(得分:0)

您可以使用UIWebView Delegate方法,如下所示。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
  webView.hidden = YES;

    return YES;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{

    webView.hidden = NO;
}

答案 3 :(得分:0)

viewDidLoad中是否有相同的功能?

-(void)viewDidLoad{

       NSString* script = [NSString stringWithFormat:@"document.getElementById('menu').style.display='none';"];
        [self.webView stringByEvaluatingJavaScriptFromString:script];
        NSLog(@"gets");
}