Domanda Strange padding / margin quando si utilizza UIWebView


Sto creando un'applicazione con una 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. Guarda l'immagine collegata:

alt text

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

Qualche idea su come rimuovere il rivestimento bianco?

Grazie in anticipo!


21
2018-03-14 16:02


origine


risposte:


In sostanza, tutti i browser aggiungono gli spazi bianchi attorno ai bordi della pagina per essere retrocompatibili con Netscape 1. Nell'HTML che stai caricando nella vista web, puoi usare il CSS per rimuovere quello:

body { margin: 0; padding: 0; }

Se non stai caricando l'HTML nella tua vista web, ma solo l'URL diretto per un file immagine, ti suggerisco a) di avvolgerlo in un HTML di base (head, body, an img tag), o b) scaricando l'immagine da soli (ad esempio con NSURLConnection) e visualizzandolo direttamente in a UIImageView.


50
2018-03-14 16:38



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


38
2017-09-26 20:48



Come ammendamento alla brillante risposta di @ thenextmillionair, metti 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 è in webViewDidFinishLoad, vedi il UIWebView riposiziona se stesso dopo essere comparso sullo schermo con il padding. Inserendolo webViewDidStartLoad, elimini questa bruttezza.


3
2017-07-12 07:09