2010-03-14 203 views
21

我正在創建一個具有包含廣告的UIWebView的應用程序。視圖的大小與廣告(圖片)本身相同。不過,在UIWebView中,圖像左側還有一些白色邊距/填充。退房的鏈接的圖像:使用UIWebView時奇怪的填充/邊距

alt text

其實,像被按下和向右由於這種填充也。

任何想法我應該如何刪除白色填充?

在此先感謝!

回答

49

基本上,所有瀏覽器都會在頁面邊緣周圍添加空白,以便與Netscape 1類似的向後兼容。在HTML中加載到Web視圖中,可以使用CSS刪除:

body { margin: 0; padding: 0; } 

如果您不是將HTML加載到您的網頁視圖中,而只是圖片文件的直接URL,我建議或者a)在一些基本HTML(頭部,正文,標籤img)或b )自己下載圖像(用NSURLConnection說),並直接在UIImageView中顯示。

+0

謝謝!我有一個HTML頁面。我添加了樣式,看起來應該是現在的樣子。非常感謝! – Nicsoft 2010-03-14 17:13:58

37

我知道這是一箇舊帖子,但只是爲了防止任何人遇到同樣的問題。通過將以下代碼添加到webViewDidFinishLoad委託方法中,我能夠解決相同的問題。

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

看看添加了上述代碼的第一個橫幅。最後一個沒有代碼。

enter image description here

+0

謝謝!爲我工作得很好。 – Praveenkumar 2013-09-25 07:39:31

3

作爲ammendment到@ thenextmillionair的輝煌答案,將代碼放在:

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

,而不是webViewDidFinishLoad。當代碼在webViewDidFinishLoad中時,您將在屏幕上出現填充後看到UIWebView自身重新定位。通過將它放在webViewDidStartLoad中,可以消除這種醜陋。