que plus pantalla mueva hacer fondos fondo cómo como cambiar bloqueo iphone uiwebview background-color

plus - fondo de pantalla del iphone



No se puede cambiar el fondo de UIWebView en iPhone SDK (8)

¿Hay alguna forma de cambiar el color de fondo de UIWebView ?

Ninguno de los colores establecidos en el comportamiento de IB Comportamiento de UIWebView : antes de que se cargue el contenido real, se muestra como blanco (lo que provoca un destello blanco entre el momento en que se carga y el contenido se muestra).

Establecer el color de fondo mediante programación tampoco hace nada.

Aquí está el código:

@interface Web_ViewViewController : UIViewController { UIWebView *web; } @property (nonatomic, retain) IBOutlet UIWebView *web; @end .... -(void)viewDidLoad { super viewDidLoad; web.backgroundColor = [UIColor blueColor]; NSURL *clUrl = [NSURL URLWithString:@"http://www.apple.com"]; NSURLRequest *req = [NSURLRequest requestWithURL:clUrl]; [web loadRequest:req]; }


Dale una oportunidad. Se desvanecerá el UIWebView una vez que haya terminado de cargar y no verá el flash.

@interface Web_ViewViewController : UIViewController <UIWebViewDelegate> { UIWebView *web; BOOL firstLoad; } @property (nonatomic, retain) IBOutlet UIWebView *web; @end ... (void)viewDidLoad { [super viewDidLoad]; firstLoad = YES; web.delegate = self; web.alpha = 0.0; NSURL *clUrl = [NSURL URLWithString:@"http://www.apple.com"]; NSURLRequest *req = [NSURLRequest requestWithURL:clUrl]; [web loadRequest:req]; } - (void)webViewDidFinishLoad:(UIWebView *)webView { if (firstLoad) { firstLoad = NO; [UIView beginAnimations:@"web" context:nil]; web.alpha = 1.0; [UIView commitAnimations]; } }

El bloque de animación en webViewDidFinishLoad desvanecerá la vista una vez que esté cargada, o si prefiere que aparezca, simplemente elimine las llamadas de UIView.


En Xcode 4.6.3

- (void)viewDidLoad { [super viewDidLoad]; self.viewWeb.hidden = YES; self.viewWeb.delegate = self; // this allows the UIWebView box to your background color seamlessly. self.viewWeb.opaque = NO; }



Ninguna de las respuestas aquí funcionó para mí, todas involucradas siguen siendo una especie de flash. Encontré una respuesta que funciona aquí: http://www.iphonedevsdk.com/forum/iphone-sdk-development/4918-uiwebview-render-speeds-white-background.html (tuve que ajustar el retraso a .25 para evitar el parpadeo). Recuerde comprobar el indicador "oculto" de UIWebView en InterfaceBuilder.

- (void)webViewDidFinishLoad:(UIWebView *)webView { [self performSelector:@selector(showAboutWebView) withObject:nil afterDelay:.25]; } - (void)showAboutWebView { self.infoWebView.hidden = NO; }


Probar esto. He utilizado una imagen de fondo "address.png" de los recursos de mi aplicación.

NSString *path=[[NSBundle mainBundle] pathForResource:@"address" ofType:@"png"]; NSURL *a=[[NSURL alloc] initFileURLWithPath:[path stringByDeletingLastPathComponent] isDirectory:YES]; NSLog(@"%@",[a description]); NSDictionary *d=[parsedarray objectAtIndex:0]; // generate dynamic html as you want. NSMutableString *str=[[NSMutableString alloc] init]; [str appendString:@"<html><body background=/"address.png/"><table><tr>"]; [str appendFormat:@"<td valign=/"top/" align=/"left/"><font size=/"2/"><b>Market Address</b><br>%@,<br>%@,<br>%@</font></td>", ([d valueForKey:@"address1"])?[d valueForKey:@"address1"]:@"", ([d valueForKey:@"address2"])?[d valueForKey:@"address2"]:@"", ([d valueForKey:@"address3"])?[d valueForKey:@"address3"]:@"" ]; [str appendFormat:@"<td valign=/"top/" align=/"left/"><font size=/"2/"><b>Contact Number</b><br>%@<br><b><a href=/"%@/">Email Us</a><br><a href=/"%@/">Visit Website</a></b></font></td>", [d valueForKey:@"phone"],[d valueForKey:@"email"],[d valueForKey:@"website"]]; [str appendString:@"</tr></table></body></html>"]; // set base url to your bundle path, so that it can get image named address.png [wvAddress loadHTMLString:str baseURL:a]; [str release]; str=nil; [a release];


Puede establecer la propiedad opaca de la vista web en NO y luego establecer el color de fondo de la vista debajo.

[webView setOpaque:NO];


Sí, parece que configurar la propiedad backgroundColor no tiene ningún efecto en UIWebView.

No tengo una solución satisfactoria, solo una solución que puede considerar.

  • Primero cambie el color de fondo, configurando una página HTML vacía inicial
  • Una vez que se haya cargado, cargue su URL principal (ej. Http://www.apple.com )

Si no espera a que se cargue la página HTML inicial, es posible que no vea el fondo inicial mientras se carga la URL principal. Por lo tanto, deberá usar el método webViewDidFinishLoad de UIWebViewDelegate. Puede implementar ese método en su clase Web_ViewViewController y hacer que su Web_ViewViewController se ajuste al protocolo UIWebViewDelegate. Inicialmente, todavía hay un parpadeo momentáneo de fondo blanco hasta que se carga la página HTML empth. No estoy seguro de cómo deshacerme de eso. Debajo hay una muestra:

- (void)viewDidLoad { [web loadHTMLString: @"<html><body bgcolor=/"#0000FF/"></body></html>" baseURL: nil]; web.delegate = self; } - (void)webViewDidFinishLoad:(UIWebView *)webView { static BOOL loadedMainURLAlready = NO; if (!loadedMainURLAlready) { NSURL *clUrl = [NSURL URLWithString:@"http://apple.com"]; NSURLRequest *req = [NSURLRequest requestWithURL:clUrl]; [webView loadRequest:req]; loadedMainURLAlready = YES; } }


Tengo una solución. Agregue la vista web después de que se cargue.

-(void)webViewDidFinishLoad: (UIWebView *)pageView { self.view =pageView; [pageView release]; }