У меня проблема с миграцией из UIViewView в WKWebView, обнаружение прокрутки достигло дна при использовании WKWebView.До WKWebView я использовал UIScrollViewDelegate, определяющий, видел ли пользователь весь контент, прокручивая его до конца WebView.Если он это сделал, кнопка «Подтвердить» была включена. iPhone - зная, достиг ли UIScrollView вершины или низа
Теперь с WKWebView это больше не работает.Я предполагаю, что причина в том, что при использовании WKWebView и загрузке html-строки он уменьшает представление для полной видимости контента.Поэтому мне пришлось установить область просмотра, добавив его в строку HTML.Это отображает содержимое таким же образом, как это делал UIWebView, предоставляя строку html, не устанавливая область просмотра.
Но теперь UIScrollViewDelegate при загрузке всегда сообщает, что дно уже достигнуто.Я предполагаю, что WKWebView загружает html, масштабирует его с полной видимостью, scrollViewDelegate распознает, что контент был полностью видимым, после этого появляется окно просмотра и масштабирует страницу, поэтому для отображения всего контента требуется вертикальная прокрутка.,Но в настоящее время моя кнопка «Подтвердить» уже включена.
Фрагмент кода
override func scrollViewDidScroll(_ scrollView: UIScrollView){
let scrollViewHeight = scrollView.frame.size.height;
let scrollContentSizeHeight = scrollView.contentSize.height;
let scrollOffset = scrollView.contentOffset.y;
if (scrollOffset + scrollViewHeight == scrollContentSizeHeight)
{
self.confirmButton.isEnabled = true;
}
}
С WKWebView scrollContentSizeHeight всегда совпадает с scrollViewHeight при загрузке, но после того, как функция делегата scrollViewDidScroll вызывает несколько раз (без прокрутки)scrollContentSizeHeight больше, чем scrollViewHeight в реальном размере.