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