我试图让WKWebView从数据中加载图像,但是它使scrollView的contentSize大大大于实际图像。有人可以解释发生了什么吗?
这是我从数据类加载图像的方式。
if let image = UIImage(data: data) {
print("image size:", image.size)
}
webView.load(data, mimeType: mimeType, characterEncodingName: "", baseURL: url)
然后NavigationDelegate向我返回contentSize。
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("content size:", webView.scrollView.contentSize)
}
我得到的输出如下。图像居中在超大滚动视图的顶部。
image size: (133.0, 354.0)
content size: (834.0, 988.0) // same size as my WKWebView
我想让scrollView大小与我的图像匹配。 感谢您的任何建议。
编辑1:我尝试了各种解决方案以使用较小的contentSize调整大小,但是scrollView似乎没有响应。现在,我在以下位置:
if let image = UIImage(data: data), image.size.width < webView.bounds.width && image.size.height < webView.bounds.height, let contentView = webView.scrollView.subviews.first {
let imageView = UIImageView(image: image)
imageView.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(imageView)
let constraints = [
imageView.centerXAnchor.constraint(equalTo: contentView.centerXAnchor),
imageView.centerYAnchor.constraint(equalTo: contentView.centerYAnchor)
]
NSLayoutConstraint.activate(constraints)
} else {
webView.load(data, mimeType: mimeType, characterEncodingName: "", baseURL: me.url)
}