WKWebView + contentInset делает неправильный размер контента

В iOS, когда вы устанавливаете contentInset в виде WKWebView , кажется, что веб-представление считает, что содержимое страницы больше, чем оно есть. Например, если вы даете в основном пустую страницу верхнюю или нижнюю contentInset , вы сможете прокручивать страницу вниз, даже если вам нечего прокручивать.

Это ожидаемое поведение? Есть ли способ, который позволяет мне использовать contentInset ?

Проблема в том, что WKWebView всегда, кажется, использует свой фрейм в качестве размера его видового экрана, пренебрегая вычитанием содержимого contentInset . Мне удалось найти обходное решение stephan-leroux .

Идея состоит в том, чтобы установить кадр WKWebView в желаемый размер видового экрана, либо вручную, либо с помощью ограничений автоопределения. Чтобы восстановить эффект « contentInset , отключите маски masksToBounds :

 wkWebview.scrollView.layer.masksToBounds = NO; 

Предложение weiyin (изменение размера рамки веб-представления) сработало для меня.

Просто хотел поделиться примером кода:

 CGFloat topInset = ...; web.scrollView.layer.masksToBounds = NO; [web.scrollView setContentInset:UIEdgeInsetsMake(topInset, 0, 0, 0)]; [web setFrame:CGRectMake(0, 0, web.width, web.height-topInset)]; 
  • Как удалить кеш WKWebview в iOS8?
  • WKWebView в iOS: как я могу перехватить клик и получить связанный контент?
  • WKWebView не открывается НЕКОТОРЫЕ target = "_ blank" ссылки
  • Коды ошибок HTTP WKWebView
  • Загружать пользовательскую ошибку htmlString, когда WKWebView loadRequest терпит неудачу
  • WKWebView, отображающий пустоту на устройстве, работающий на симуляторе
  • Можно ли использовать кеш между WKWebViews?
  • Два WKWebViews используют локальное хранилище, но только после перезапуска
  • WKWebView загружает ресурсы из локальной папки документа
  • Недопустимый сертификат WKWebView https.
  • Получить URL-адрес всех элементов, используемых с помощью WKWebView
  • Давайте будем гением компьютера.