Comment éviter le flash blanc initial lors de l'affichage d'un UIWebView?

J'utilise un UIWebView pour afficher un écran «À propos de» en affichant un file HTML fourni. La hiérarchie de vue de mon application est: UITabBarController / UIViewController / UIWebView .

Le problème est que la page HTML a un fond sombre, et la toute première fois que l'onglet est tapé, un arrière-plan blanc est visible brièvement avant que la vue Web est affichée. J'ai essayé de définir la couleur de fond de l' UIWebView , mais cela ne résout pas le problème. Le problème se produit si je charge le contenu dans viewDidLoad ou viewWillAppear .

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

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

Ajoutez ceci pour déléguer après le chargement

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

J'ai également rencontré le même problème, la solution que j'ai trouvée est la suivante.

– (void) viewDidLoad {[super viewDidLoad];

 [_webView setOpaque:NO]; _webView.backgroundColor = [UIColor clearColor]; self.webView.hidden = YES; 

}

– (void) webViewDidFinishLoad: (UIWebView *) webView {

 //........................... self.webView.hidden = NO; 

}