2013-04-14 2 views
0

Я использую в своем приложении webViewDidFinishLoad, и есть что-то около UIWebView, что действительно меня задевает, ну, на самом деле, две вещи. Во-первых, когда я загружаю новый контент к UIWebView я буду видеть на полсекунды последней страницы, которая была загружена в то же UIWebView, что заставит меня «чистый» UIWebView используя что-то вроде:webViewDidFinishLoad закончил загрузку, но не закончил показ содержимого на экране

[_mainWebView stringByEvaluatingJavaScriptFromString:@"document.open();document.close();"]; 

перед загрузкой нового контента.

Второй вопрос у меня есть, и это главная проблема для этого вопроса является то, что если я буду загружать некоторое новое содержание моего UIWebView и сделать что-то вроде этого:

[_mainWebView loadHTMLString:htmlString baseURL:nil]; 
... 
    - (void)webViewDidFinishLoad:(UIWebView *)webView { 
      _mainWebView.alpha = 1; 
    } 

В некоторых случаях UIWebView покажет до белого цвета на полсекунды, прежде чем показывать содержимое. Я предполагаю, что содержимое уже загружено в UIWebView, и именно поэтому webViewDidFinishLoad:webView увольняется, но для небольших страниц html, показывающих контент, становится больше, чем фактическая нагрузка. Есть ли способ обхода, который я могу использовать, чтобы избежать пустого экрана, который показывается в течение секунды или около того, но все же сохранить эту секунду?

Я думал об анимации альфа от 0 до 1, но это решение кажется мне хромым.

+0

У вас есть контроль над HTML? Или вы хотите загрузить и обработать html? Если это так, вы можете добавить javascript на страницу, которая выполняет обратный вызов в вашем приложении ... – Wain

+0

Я загружаю htmls перед его отображением. Звучит интересно, я готов попробовать. :) – Segev

+0

Показанный код на самом деле не так уж много. Пожалуйста, вы можете предоставить еще несколько, чтобы показать, что именно вы делаете. – Popeye

ответ