Как предотвратить переход навигационной панели с большого заголовка на маленький заголовок при увеличении или прокрутке WKWebView? - PullRequest
0 голосов
/ 17 февраля 2020

Использование Swift-5.1.3, iOS -13.3,

Наличие WKWebView в моем ViewController приводит к уменьшению размера панели навигации, как только пользователь увеличивает (или прокручивает) веб-представление.

Как я всегда могу сохранить панель навигации в большом размере (независимо от жеста внутри webView)?

Обычно достаточно установить для навигационного бара значение smallTitle, например:

self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always

Но не с WebView. Что нужно установить, чтобы всегда хранить largTitle?

Вот весь мой код:

import Foundation
import WebKit

class MailboxViewerController: UIViewController {

    @IBOutlet weak var webView: WKWebView!
    override func viewDidLoad() {
        super.viewDidLoad()

        webView.navigationDelegate = self
        webView.scrollView.showsVerticalScrollIndicator = false
        webView.scrollView.showsHorizontalScrollIndicator = false

        webView.scrollView.contentInset = .init(top: 0, left: 0, bottom: 0, right: 0)
        webView.layoutEdgeInsets = .init(top: 0, left: 0, bottom: 0, right: 0)

        self.navigationController?.navigationBar.prefersLargeTitles = true
        self.navigationItem.largeTitleDisplayMode = .always

        webView.scrollView.contentInsetAdjustmentBehavior = .never
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        webView.reload()
    }
}

extension MailboxViewerController: WKNavigationDelegate {
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseIn, animations: {
            self.webView.alpha = 1.0
        })
    }

    func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
        BusyView.hide()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...