WKWebView внутри прокрутки - PullRequest
0 голосов
/ 19 января 2019

Как я могу поместить WKWebView в представление с прокруткой, учитывая, что после просмотра веб-страниц у меня должны быть другие элементы.

. View ... Scroll View ....... ImageView ....... WKWebView ....... Button

См. Демонстрационное изображение

  • Проблема 1: отключить прокрутку для WKWebView
  • Проблема 2. Установка полной высоты содержимого для WKWebView

Проверьте мой пример проекта

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Если вы хотите получить высоту содержимого html в WKWebView, чтобы сделать его недоступным для прокрутки внутри UIScrollView, тогда читайте дальше.

Вам необходимо наблюдать (через делегата) высоту содержимого вашего веб-представления. Я даю вам эти шаги, так как вы прекрасно знаете, что делаете, и вы почти у цели.

Создайте выход из ограничения высоты webView

@IBOutlet weak var constraint_WebViewHeight: NSLayoutConstraint!

Подписаться на делегата webView

Это сообщит вам (ваш контроллер, когда ваш webView завершит загрузку содержимого вашего сайта.

self.webView.navigationDelegate = self

Соответствует протоколу

Внутри didFinish navigation метода WKNavigationDelegate вы затем настраиваете константу ограничения высоты вашего webView. Поместите анимацию, если хотите:)

extension ViewController: WKNavigationDelegate {
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
            self.constraint_WebViewHeight.constant = webView.scrollView.contentSize.height
        }
    }
}

Наконец, исправьте свои ограничения.

а. Удалите свое нижнее ограничение imageView. б. Добавьте нижнее ограничение к вашей кнопке сохранения в scrollView.

Это сделает ваш scrollView прокручиваемым.

Вуаля! Это дает этот результат.

enter image description here

Надеюсь, это поможет!

0 голосов
/ 20 января 2019

Согласно пониманию, вы хотите, чтобы веб-просмотр не прокручивался хорошо, если страница больше вашего экрана, она будет прокручиваться правильно? Показать полную страницу. Хотя вы можете изменить isscrollingenabled на false из компоновщика интерфейса или из кода, используя объект scrollview. Для установки полной высоты задайте ограничение 0,0,0,0 со всех сторон, и оно обязательно растянется на весь экран

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...