Я пытаюсь, чтобы WKWebView загружал изображение из данных, но это делает размер содержимого scrollView намного больше, чем фактическое изображение. Кто-нибудь может объяснить, что происходит?
Вот как я загружаю изображение из класса данных.
if let image = UIImage(data: data) {
print("image size:", image.size)
}
webView.load(data, mimeType: mimeType, characterEncodingName: "", baseURL: url)
Затем навигационный элемент возвращает мне contentSize.
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("content size:", webView.scrollView.contentSize)
}
Вывод, который я получаю, следующий. Изображение центрировано в верхней части увеличенного scrollView.
image size: (133.0, 354.0)
content size: (834.0, 988.0) // same size as my WKWebView
Я хочу, чтобы размер scrollView соответствовал моему изображению. Спасибо за любой совет.
Редактировать 1: я пробовал различные решения, чтобы изменить размер, используя меньший размер содержимого, однако 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)
}