显示UIWebView时如何防止初始白色闪烁?

我使用UIWebView通过显示捆绑的HTML文件来显示“关于”屏幕。 我的应用程序的视图层次结构是: UITabBarController / UIViewController / UIWebView

问题是HTML页面背景较暗,并且第一次点击选项卡时,在显示Web视图之前会短暂显示白色背景。 我尝试设置UIWebView的背景颜色,但这并没有解决问题。 无论我是在viewDidLoad还是viewWillAppear加载内容,都会出现问题。

 webView.opaque = NO; webView.backgroundColor = [UIColor clearColor]; 

//加载index.html

 NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"www"]]; self.webview.delegate = self; self.webview.alpha = 0; // flicker fix [self.webview loadRequest:[NSURLRequest requestWithURL:url]]; 

加载后将其添加到委托

 // flicker fix - (void)webViewDidFinishLoad:(UIWebView *)webView { [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.30]; self.webview.alpha = 1; [UIView commitAnimations]; } 

我也遇到了同样的问题,我发现的解决方案如下。

 -(void)viewDidLoad { [super viewDidLoad]; [_webView setOpaque:NO]; _webView.backgroundColor = [UIColor clearColor]; self.webView.hidden = YES; } -(void)webViewDidFinishLoad:(UIWebView *)webView { //........................... self.webView.hidden = NO; }