显示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; }