Пустой экран появляется за несколько миллисекунд до того, как uiwebview отобразит локальную HTML-страницу - PullRequest
1 голос
/ 28 октября 2011

У меня есть UINavigationController, который отображает табличное представление. Когда я нажимаю на строку, я помещаю новое представление в стек, которое содержит UIWebView. Внутри View Controller я загружаю локальную HTML-страницу в UIWebView. Он работает нормально, за исключением того, что при первом запуске приложения при отображении UIWebView появляется пустой белый экран, который нажимается в течение 1 секунды, прежде чем он действительно отобразит содержимое HTML. В следующий раз отображается пустой белый экран, но только через несколько миллисекунд.

Как я могу избежать появления этого пустого белого экрана перед отображением HTML? Вот код, который я использую для отображения HTML-файла в uiWebView.

    NSString *localizedAboutHTML = NSLocalizedString(@"About", @"Filename of the HTML page to be displayed depending on the language");
    NSString *path = [[NSBundle mainBundle] pathForResource:localizedAboutHTML ofType:@"html"];
    NSURL* baseURL = [NSURL fileURLWithPath:path];
    NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];

    NSString *htmlString = [[NSString alloc] initWithData: 
                  [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];

webView.opaque = YES;
webView.backgroundColor = [UIColor blackColor];
[self.webView loadHTMLString:htmlString baseURL:baseURL];
[super viewWillAppear:animated];

Спасибо

Себ.

1 Ответ

2 голосов
/ 28 октября 2011

Поскольку загрузка WebView может занять больше времени, зависит от вашего HTML-файла.Если вы не хотите, чтобы в течение этого короткого периода времени отображался белый экран, почему бы не добавить индикатор активности, чтобы показать, что веб-просмотр загружается для пользователей.Еще одна опция - скрыть webView и показать его после завершения загрузки webView в методе делегирования webview webViewDidFinishLoad:(UIWebView *)webView

...