2010-03-28 18 views
7

La vista principale della mia app ha un interfaccia utente. È bianco per una frazione di secondo prima che abbia il tempo di generare il codice HTML che l'app genera.iphone vista bianca iniziale di uiwebview

C'è un modo per rendere uiwebview nero o un altro colore prima del rendering? Il flash di bianco non fa parte del mio piano per una transizione visiva fluida.

Le risposte Objective-C o MonoTouch vanno bene, io sono bilingue.

+0

Stai impostando lo sfondo colorato della visualizzazione Web? –

+0

Ho provato, ma appare prima la visualizzazione web, lampeggia in bianco, quindi passa al mio colore. –

risposta

3

Una cosa che puoi provare è mettere un UIView con il colore che desideri e posizionarlo sopra l'UIWebView con la stessa larghezza e altezza. Quindi, nel metodo webViewDidFinishLoad, imposta l'UIView su hidden.

31

Un'altra cosa da provare è quello di rendere la visione trasparente:

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

Questo fa sì che il lavoro supplementare compositing, tuttavia, in modo da poter ripristinare questi valori a qualcosa di più adatto per questo dopo i vostri vista web carichi, in webViewDidFinishLoad: .

- (void) webViewDidFinishLoad:(UIWebView *)webView 
{ 
    webView.backgroundColor = [UIColor blackColor]; 
    webView.opaque = YES; 
} 
+0

Cercare di farlo in Interface Builder NON funziona per me, quindi tienilo a mente. Il codice sopra funziona bene .. – phi

+1

questa è la soluzione perfetta se hai istanziato uiwebview in modo programmatico. Grazie – Andreas

+0

Aiuta anche l'impostazione del colore di sfondo della finestra in MainWindow.xib da bianco a nero. – neoneye

0

Non riesco ancora a commentare la risposta. @Steve, in realtà è possibile farlo con gli storyboard.

Posizionare un UIView sotto l'UIWebView e:

// Can be set in the storyboard 
bottomView.backgroundColor = [UIColor yellowColor]; 
webview.alpha = 0; 

Tenete a mente che un sacco di Recupero della pagina roba dopo essere stato caricato tramite JS così si può ancora essere lasciato con un bianco pagina paio di secondi dopo

- (void) webViewDidFinishLoad:(UIWebView *)webView 
{ 
    webView.alpha = 1; 
} 
0

Per aggiungere alla risposta di Steve Madsen (poiché non posso ancora commentare). Se hai istanziato UIWebView in Interface Builder, non sarai in grado di impostare alpha su 0.0, ma quello che puoi fare è aprire il selettore di colori per impostare un colore di sfondo (bianco, nero, grigio, non importa), quindi impostare il l'opacità di quel colore allo zero percento, e questo funziona.

Problemi correlati