WKWebView自适应缩放

3

将UIWebView迁移到WKWebView时,我无法弄清如何使用loadHTMLString函数在WKWebView上加载的HTML按大小适应视图边界。现在,我成功加载了html,但它超出了我的视图的右侧和底部。如何将其缩放以适应我的视图边界?


尝试这个:https://dev59.com/Kl8d5IYBdhLWcg3w6lyM - hariszaman
1个回答

11

首先,在StoryBoard中选择一个容器视图,您将在其中添加WKWebView作为subview

@IBOutlet var container: UIView!

然后导入 WebKit 并对其进行初始化,最后将其作为容器的子视图添加。为了保持边界,您必须根据其父视图给出约束值。这是我所做的:

然后导入 WebKit 并对其进行初始化,最终添加为容器的子视图。为了保留其边框,您需要根据其父视图为其设置约束值。以下是我的实现:

        let webView = WKWebView(frame: .zero)
        container.addSubview(webView)

        webView.translatesAutoresizingMaskIntoConstraints = false
        let height = NSLayoutConstraint(item: webView, attribute: .height, relatedBy: .equal, toItem: container, attribute: .height, multiplier: 1, constant: 0)
        let width = NSLayoutConstraint(item: webView, attribute: .width, relatedBy: .equal, toItem: container, attribute: .width, multiplier: 1, constant: 0)
        let leftConstraint = NSLayoutConstraint(item: webView, attribute: .leftMargin, relatedBy: .equal, toItem: container, attribute: .leftMargin, multiplier: 1, constant: 0)
        let rightConstraint = NSLayoutConstraint(item: webView, attribute: .rightMargin, relatedBy: .equal, toItem: container, attribute: .rightMargin, multiplier: 1, constant: 0)
        let bottomContraint = NSLayoutConstraint(item: webView, attribute: .bottomMargin, relatedBy: .equal, toItem: container, attribute: .bottomMargin, multiplier: 1, constant: 0)
        container.addConstraints([height, width, leftConstraint, rightConstraint, bottomContraint])

        let myURL = URL(string: "")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)

添加所需的URL,完成即可。


对我很有帮助。非常感谢你。 - mafarja
很高兴能够帮到你 :) - Fay007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接