Мой ViewController с большой панелью навигации автоматически прокручивается после загрузки WKWebView - PullRequest
2 голосов
/ 16 октября 2019

В моем приложении я загружаю информацию о странице в контроллере представления с WebKit WebView, а Viewcontroller имеет большой контроллер навигации. Во время просмотра DidLoad Большая панель навигации отображается нормально.

В этот момент, когда я начинаю загружать свой WebView с локальным HTML-файлом. После загрузки этого WebView, без какого-либо взаимодействия с пользователем, ViewController автоматически прокручивается вверх, так что панель навигации сжимается до фактической формы небольшого размера. enter image description here

Ответы [ 4 ]

0 голосов
/ 14 ноября 2019

Измените свойство contentInsetAdjustmentBehavior ScrollView из WebView на .never в вашем методе viewDidLoad.

webView.scrollView.contentInsetAdjustmentBehavior = .never
0 голосов
/ 12 ноября 2019

Что вам поможет, так это использование viewLayoutMarginsDidChange(). Используя это, вы можете проверить в каждом просмотре, изменился ли размер представления, и если да, то вы можете установить здесь свой первоначальный размер заголовка навигации, поэтому вместо того, что я добавил, выполните синтаксический анализ. значения вашей рамки навигации ниже.

     var didChange = false
    override func viewLayoutMarginsDidChange() {
    if didChange {
        print("Height : - \ 
  (self.navigationController?.navigationBar.frame.size.height)")
    // set NavigationBar Height here    
       self.navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width: 
   UIScreen.main.bounds.width, height: 96.0)
        didChange.toggle() 
        }
     }
0 голосов
/ 14 ноября 2019

Попробуйте получить события прокрутки wkWebView.srollView в scrollViewDidScroll, посмотрите, что-то заставляет их прокручиваться.

Или отключите WKWebView.scrollView.scrollEnabled при загрузке WebView и включите его снова, когда загрузка завершится

0 голосов
/ 16 октября 2019

Да, это стандартное поведение панели навигации, если вы хотите постоянно устанавливать большую панель навигации, то вам нужно использовать собственную панель навигации. Создайте свою собственную панель навигации. Спасибо

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