gpt4 book ai didi

ios - 加载 WKWebview 时,Swift 更喜欢 LargeTitles 折叠

转载 作者:可可西里 更新时间:2023-11-01 01:06:58 25 4
gpt4 key购买 nike

我使用这段代码创建了一个带有大标题 NavigationBarNavigationController

class NavigationController: UINavigationController {

override func viewDidLoad() {
super.viewDidLoad()

let appearance = UIBarButtonItem.appearance()
appearance.setBackButtonTitlePositionAdjustment(UIOffset.init(horizontal: 0.0, vertical: -60), for: .default)

self.navigationBar.barTintColor = UIColor.white
self.navigationBar.prefersLargeTitles = true
self.navigationBar.isTranslucent = true
self.navigationBar.tintColor = UIColor.black
}
}

一切正常,但是当加载我的 WKWebView 时,大标题栏不知何故自动折叠,没有任何 ScrollViewDelegate 代码。请在这里查看我的 gif 以澄清

enter image description here

这是我的 WKWebView 代码。

class resultViewController: UIViewController
{
private var webView: WKWebView!

override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white

webView = WKWebView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height))
webView.navigationDelegate = self
webView.scrollView.delegate = self
self.view.addSubview(webView)
let url = URL(string: "https://google.com")
webView.load(URLRequest(url: url!))
}

}

我希望在第一个屏幕上保持大标题栏可见,并且仅在触发向上滚动事件时才折叠。

有什么想法吗?

最佳答案

  • 此问题的原因是当您的 webView 开始加载页面时,您的导航条高度正在改变。所以使用 viewLayoutMarginsDidChange() 我们可以改变 navigationBar 的高度。
  • viewLayoutMarginsDidChange() 调用以通知 View Controller 其 Root View 的布局边距已更改。每当 navigationBar 高度发生变化时,都会调用此方法。

引用这个答案 https://stackoverflow.com/a/57430695/7301439

关于ios - 加载 WKWebview 时,Swift 更喜欢 LargeTitles 折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57417075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com