Использование 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()
}
}