如何在iOS Swift中的WKWebView顶部添加边距

时间:2019-06-26 08:01:59

标签: ios swift webview wkwebview

我正在IOS swift的WKWebView中显示一个pdf文件,并且显示良好。我正在从服务器加载pdf文件。但是文件的某些部分被隐藏在顶部导航栏的后面。我想在WKWebView的顶部添加边距。这是我当前的代码。

    let myBlog = file
    let url = NSURL(string: myBlog)
    let request = NSURLRequest(url: url! as URL)

    // init and load request in webview.
    webView = WKWebView(frame: self.view.frame)
    webView.navigationDelegate = self
    webView.load(request as URLRequest)

    self.view.addSubview(webView)

    // webView.translatesAutoresizingMaskIntoConstraints = false
    // webView.addConstraints([NSLayoutConstraint(item: webView, attribute: .height, relatedBy: .equal, toItem: view, attribute: .height, multiplier: 1, constant: 0)])

    self.view.addSubview(sv)       
    let pdfVC = UIViewController()
    pdfVC.view.addSubview(webView)
    pdfVC.title = "File"
    self.navigationController?.pushViewController(pdfVC, animated: true)

enter image description here

在这里,注释的代码是我试图增加页边距而不起作用的方式。

3 个答案:

答案 0 :(得分:4)

webView = WKWebView(frame: self.view.frame)

在设置框上方的那一行中,使其从顶部离开空白并从高度减少给定的空白。

答案 1 :(得分:1)

尝试设置layoutMargin,它应该可以解决问题。

self.webView.layoutMargins = UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8)

答案 2 :(得分:0)

首先将translatesAutoresizingMaskIntoConstraints中的webView设置为false,即

    webView.translatesAutoresizingMaskIntoConstraints = false

现在,在constraints webViewview's中添加safeAreaLayoutGuide的正确的 layoutMarginsGuide ,即

    var guide: UILayoutGuide
    if #available(iOS 11.0, *) {
        guide = self.view.safeAreaLayoutGuide
    } else {
        guide = self.view.layoutMarginsGuide
    }

    NSLayoutConstraint.activate([
        webView.leadingAnchor.constraint(equalTo: guide.leadingAnchor),
        webView.trailingAnchor.constraint(equalTo: guide.trailingAnchor),
        webView.topAnchor.constraint(equalTo: guide.bottomAnchor),
        webView.bottomAnchor.constraint(equalTo: guide.bottomAnchor)
        ])