代码之家  ›  专栏  ›  技术社区  ›  Nicsoft

使用UIWebView时出现奇怪的填充/边距

  •  21
  • Nicsoft  · 技术社区  · 16 年前

    我正在创建一个应用程序,它有一个包含广告的UIWebView。视图的大小与广告(图像)本身相同。不过,在UIWebView中,在图像的上方和左侧仍有某种白色边距/填充。查看链接图像:

    alt text

    实际上,由于这个填充,图像被向下和向右推。

    你知道我该怎么去掉白色的填充物吗?

    提前谢谢!

    3 回复  |  直到 9 年前
        1
  •  51
  •   Sixten Otto    16 年前

    基本上,所有浏览器都会在页面边缘添加空格,以便与Netscape 1向后兼容。在加载到web视图的HTML中,可以使用CSS删除该空格:

    body { margin: 0; padding: 0; }
    

    如果您没有将HTML加载到您的web视图中,而只是将图像文件的直接URL加载到web视图中,我建议您要么a)将其包装在一些基本的HTML中(头部、身体、头部) img 标签),或者b)自己下载图片(比如 NSURLConnection ),并将其直接显示在 UIImageView .

        2
  •  40
  •   thenextmillionaire    14 年前

    我知道这是一个老帖子,但以防有人有同样的问题。通过将以下代码添加到webViewDidFinishLoad委托方法中,我可以解决相同的问题。

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

    enter image description here

        3
  •  4
  •   Ser Pounce    10 年前

    作为对@thenextmillionair辉煌答案的补充,请输入以下代码:

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

    相对于 webViewDidFinishLoad . 当代码在 webViewDidFinishLoad UIWebView 用填充物显示在屏幕上后重新定位自身。把它放进去 webViewDidStartLoad