在uiwebview显示本地HTML页面之前,空白屏幕显示几毫秒

时间:2011-10-28 19:40:30

标签: iphone html ios uiwebview uinavigationcontroller

我有一个显示表视图的UINavigationController。当我单击一行时,我在包含UIWebView的堆栈上推送一个新视图。 在View Controller内部,我在UIWebView中加载了一个本地HTML页面。它工作正常,除了在显示UIWebView时第一次启动应用程序时,有一个空白的白色屏幕在1秒之前被推送以真正显示HTML内容。 下一次显示空白屏幕,但只有几毫秒。

如何在显示HTML之前避免此空白屏幕? 这是我用来在uiWebView中显示HTML文件的代码。

    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];

谢谢,

SEB。

1 个答案:

答案 0 :(得分:2)

因为WebView加载可能需要更长时间,具体取决于您的HTML文件。如果您不希望在短时间内显示白屏,为什么不添加活动指示器以显示正在为用户加载webview。还有一个选项是隐藏webView并在webview委托方法webViewDidFinishLoad:(UIWebView *)webView

中完成webView加载后显示它