広告を含むUIWebViewを持つアプリを作成しています。ビューのサイズは、広告(画像)自体と同じです。それでも、UIWebView内には、画像の左上にある種の白い余白/パディングがあります。リンクされた画像をチェックしてください:
実際には、このパディングによっても画像は右下に押し下げられます。
白いパディングを削除する方法はありますか?
前もって感謝します!
基本的に、すべてのブラウザは、ページの端の周りにその空白を追加して、Netscape 1のように下位互換性を持たせます。WebビューにロードするHTMLで、CSSを使用してそれを削除できます。
body { margin: 0; padding: 0; }
HTMLをWebビューにロードせず、画像ファイルの直接URLのみをロードする場合は、a)基本的なHTML(head、body、img
タグ)でラップするか、b )画像を自分でダウンロードし(たとえばNSURLConnection
を使用)、UIImageView
に直接表示します。
私はこれが古い投稿であることを知っていますが、誰かが同じ問題を抱えている場合に備えて。次のコードをwebViewDidFinishLoadデリゲートメソッドに追加することで、同じ問題を修正することができました。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *padding = @"document.body.style.margin='0';document.body.style.padding = '0'";
[webView stringByEvaluatingJavaScriptFromString:padding];
}
上記のコードが追加された最初のバナーを見てください。そして、コードのない一番下のもの。
@thenextmillionairの素晴らしい答えの修正として、コードを次のように配置します。
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSString *padding = @"document.body.style.margin='0';document.body.style.padding = '0'";
[webView stringByEvaluatingJavaScriptFromString:padding];
}
webViewDidFinishLoad
とは対照的です。コードがwebViewDidFinishLoad
にある場合、パディング付きで画面に表示された後、UIWebView
が再配置されます。それをwebViewDidStartLoad
に入れることで、この醜さを排除します。