使用UIWebView / WKWebView时奇怪的填充

时间:2015-10-08 22:41:40

标签: ios css uiwebview wkwebview

sides padding

在模拟器和真实设备上,我在页面的左侧和右侧获得此白色填充。另外我也想删除顶栏。我在Main.storyboard上有UIWebView / WKWebView: Constrains

我试图设置-20的约束值,但它什么都没有。 代码如下:

 @IBOutlet var webView: WKWebView!


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        self.automaticallyAdjustsScrollViewInsets = false;

        let url = NSURL(string: "https://www.google.ru/");
        var req = NSURLRequest(URL: url!);
        webView.loadRequest(req);

    }

并且在我开始在google上测试之前,我尝试将body { padding: 0; margin: 0; }添加到我自己的页面。我检查了Safari - 这是完美的谷歌图片。 所以我所尝试的并没有帮助我。如何在WKWebView中删除那些左/右白色填充?

1 个答案:

答案 0 :(得分:8)

看起来开箱即用WKWebView在body标签上设置了一个边距。您可以通过创建WKWebViewConfiguration并使用包含带边距为0的正文样式的配置添加初始化来删除它。

let config = WKWebViewConfiguration()
let bodyStyle = "body { margin:0; }"
let source = "var node = document.createElement(\"style\"); node.innerHTML = \"\(bodyStyle)\";document.body.appendChild(node);"

let script = WKUserScript(
            source: source,
            injectionTime: .AtDocumentEnd,
            forMainFrameOnly: false
        )

config.userContentController.addUserScript(script)
webView = WKWebView(frame: CGRectZero, configuration: config)

或者快速而肮脏的方式是只为视图添加内联样式。 (我没有尝试过这种方式)

相关问题