WebViewDidFinishLoad: стрельба слишком скоро?

Я пытаюсь перейти между загрузкой различных веб-страниц, скрывая webView при загрузке страницы. Тем не менее, я вижу, что некоторые сайты, интенсивно использующие изображения, заставляют webViewDidFinishLoading запускаться слишком быстро, и когда я показываю webView в этой точке, то в течение секунды вы получите представление о предыдущей странице. Любые идеи о том, как разрешить это?

Ответ 1

Если на странице есть Javascript, вам может потребоваться дождаться завершения. Самый простой способ - отправить некоторый javascript на страницу, которая будет выполнена:

-(void) webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *javaScript = @"<script type=\"text/javascript\">function myFunction(){return 1+1;}</script>";
    [webView stringByEvaluatingJavaScriptFromString:javaScript];

  // done here
}

Сказав это, я, кажется, все еще вижу случаи, когда веб-просмотр не совсем обновляется в webViewDidFinishLoad.

Ответ 2

Я столкнулся с этой проблемой. Хотя я не нашел решения, я работал над проблемой, введя задержку в 0,5 секунды, прежде чем показывать UIWebView после вызова метода делегата webViewDidFinishLoading.

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [self performSelector:@selector(displayWebView) withObject:nil afterDelay:0.5];
}