WKWebView - scrollView's contentSize не соответствует размеру изображения - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь, чтобы 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...