webViewDidFinishLoad: увольнять слишком рано? - PullRequest
12 голосов
/ 14 сентября 2009

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

Ответы [ 2 ]

4 голосов
/ 14 апреля 2010

Если на странице есть Javascript, возможно, вам придется дождаться его завершения. Кажется, что проще всего отправить на страницу исполняемый код JavaScript:

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

  // done here
}

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

3 голосов
/ 25 октября 2009

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

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [self performSelector:@selector(displayWebView) withObject:nil afterDelay:0.5];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...