2010-03-14 28 views
21

Sto creando un'app che ha un UIWebView che contiene un annuncio. La dimensione della vista è la stessa della pubblicità (immagine) stessa. Tuttavia, c'è un margine bianco/padding di qualche tipo sopra e alla sinistra dell'immagine, all'interno di UIWebView. Controlla l'immagine collegata:Strange padding/margin quando si utilizza UIWebView

alt text

In realtà, l'immagine viene spinto verso il basso e verso destra a causa di questo anche imbottitura.

Qualche idea su come rimuovere il rivestimento bianco?

Grazie in anticipo!

risposta

49

In sostanza, tutti i browser aggiungere in tale spazio bianco attorno ai bordi della pagina per essere retrocompatibile con il simile Netscape 1. Nel codice HTML che si desidera caricare nella visualizzazione Web, è possibile utilizzare i CSS per rimuovere che:

Se non si carica HTML nella vista Web, ma solo l'URL diretto per un file immagine, suggerisco o a) il wrapping in HTML di base (testa, corpo, un tag img) o b) scaricando l'immagine da soli (ad esempio con NSURLConnection) e visualizzandola direttamente in un UIImageView.

+0

Grazie! Ho una pagina HTML. Ho aggiunto lo stile e sembra come dovrebbe ora. Grazie molto! – Nicsoft

37

So che questo è un vecchio post, ma nel caso qualcuno abbia gli stessi problemi. Sono stato in grado di risolvere lo stesso problema aggiungendo il seguente codice nel metodo delegato webViewDidFinishLoad.

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

Guarda il primo banner con il codice sopra aggiunto. E quello in basso senza il codice.

enter image description here

+0

Grazie! Funzionando bene per me. – Praveenkumar

3

Come ammendment alla risposta brillante @ di thenextmillionair, mettere il codice in:

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

al contrario di webViewDidFinishLoad. Quando il codice è webViewDidFinishLoad, si vede riposizionare lo UIWebView dopo essere visualizzato sullo schermo con il padding. Inserendolo in webViewDidStartLoad, si elimina questa bruttezza.

Problemi correlati