2010-03-28 12 views
7

La vista principal de mi aplicación tiene una vista en el navegador. Es blanco por una fracción de segundo antes de que tenga tiempo de generar el HTML que genera la aplicación.iphone uiwebview vista inicial en blanco

¿Hay alguna manera de hacer que la interfaz de usuario se vuelva negra o de otro color antes de que se visualice? El destello de blanco no es parte de mi plan para una transición visual fluida.

Las respuestas de Objective-C o MonoTouch están bien, soy bilingüe.

+0

¿Está configurando el color de fondo de la vista web? –

+0

Lo intenté, pero la vista web aparece primero, parpadea en blanco y luego cambia a mi color. –

Respuesta

3

Una cosa que puedes probar es poner una UIView con el color que quieras y colocarla sobre el UIWebView con el mismo ancho y alto. Luego, en el método webViewDidFinishLoad, configure UIView en oculto.

31

Otra cosa a intentar es hacer que la visión transparente:

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

Esto hace que el trabajo de composición adicional, sin embargo, para que pueda restablecer estos valores a algo más amigable para que después de su vista Web cargas, en webViewDidFinishLoad: .

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

Intentar hacer eso en Interface Builder NO funciona para mí, así que tenlo en cuenta. El código anterior funciona bien. – phi

+1

esta es la solución perfecta si crea una instancia de uiwebview programáticamente. Gracias – Andreas

+0

También ayuda a establecer el color de fondo de la ventana en MainWindow.xib de blanco a negro. – neoneye

0

No puedo comentar todavía la respuesta. @Steve, en realidad es posible hacerlo con guiones gráficos.

Coloque un UIView bajo la UIWebView y:

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

Tenga en cuenta que una gran cantidad de recuperación de páginas cosas después de ser cargado a través de JS lo que aún puede quedar con una página par de blancos segundos después

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

Para agregar a la respuesta de Steve Madsen (ya que no puedo comentar todavía). Si instaló UIWebView en Interface Builder, no podrá establecer alfa en 0.0, pero lo que puede hacer es abrir el selector de color para establecer un color de fondo (blanco, negro, gris, no importa), luego configure el la opacidad de ese color al cero por ciento, y eso funciona.

Cuestiones relacionadas