2010-03-14 19 views
21

Estoy creando una aplicación que tiene un UIWebView que contiene un anuncio. El tamaño de la vista es el mismo que el anuncio (imagen) en sí. Aún así, hay un margen/relleno blanco de algún tipo arriba y a la izquierda de la imagen, dentro de UIWebView. Echa un vistazo a la imagen enlazada:Extraño relleno/margen al utilizar UIWebView

alt text

En realidad, la imagen se empuja hacia abajo y hacia la derecha debido a este relleno también.

¿Alguna idea de cómo debo quitar el relleno blanco?

¡Gracias de antemano!

Respuesta

49

Básicamente, todos los navegadores añaden en ese espacio en blanco alrededor de los bordes de la página para que sea compatible con versiones anteriores como Netscape 1. En el HTML que va a cargar en la vista web, puede utilizar CSS para eliminar ese:

body { margin: 0; padding: 0; } 

Si no va a cargar HTML en su vista web, pero sólo la URL directa de un archivo de imagen, puedo sugerir o bien a) envolver que en algún HTML básico (cabeza, cuerpo, una etiqueta img), ob) descargando la imagen usted mismo (por ejemplo, con NSURLConnection) y mostrándola directamente en un UIImageView.

+0

¡Gracias! Tengo una página HTML. Agregué el estilo y se ve como debería ahora. ¡Muchas gracias! – Nicsoft

37

Sé que esta es una publicación anterior, pero por si acaso alguien tiene los mismos problemas. Pude solucionar el mismo problema agregando el siguiente código en el método delegado webViewDidFinishLoad.

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSString *padding = @"document.body.style.margin='0';document.body.style.padding = '0'"; 
    [webView stringByEvaluatingJavaScriptFromString:padding]; 
} 

Mire el primer banner con el código anterior agregado. Y el de abajo sin el código.

enter image description here

+0

Gracias! Funciona bien para mí. – Praveenkumar

3

Como una enmienda a la brillante respuesta de @ thenextmillionair, poner el código en:

- (void)webViewDidStartLoad:(UIWebView *)webView 
{ 
    NSString *padding = @"document.body.style.margin='0';document.body.style.padding = '0'"; 
    [webView stringByEvaluatingJavaScriptFromString:padding]; 
} 

en contraposición a webViewDidFinishLoad. Cuando el código está en webViewDidFinishLoad, verá la recolocación UIWebView después de aparecer en la pantalla con el relleno. Al ponerlo en webViewDidStartLoad, elimina esta fealdad.

Cuestiones relacionadas