首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift prefersLargeTitles在加载WKWebview时崩溃

Swift prefersLargeTitles在加载WKWebview时崩溃
EN

Stack Overflow用户
提问于 2019-08-08 16:31:19
回答 1查看 476关注 0票数 2

我用这段代码创建了一个带有大标题的NavigationController NavigationBar

代码语言:javascript
复制
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代码。请看一下我在这里的资料,以澄清

这是我的WKWebView代码。

代码语言:javascript
复制
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!))
    }

}

我希望在第一个屏幕上保持大标题栏可见,只有当滚动事件触发时才会崩溃。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-09 12:52:16

  • 此问题的原因是当您的navigationBar开始加载页面时,您的webView高度正在改变。所以使用viewLayoutMarginsDidChange(),我们可以改变navigationBar的高度。
  • viewLayoutMarginsDidChange()调用通知视图控制器其根视图的布局边距发生了变化。每当navigationBar高度发生变化时,都会调用此方法。

请参阅这个答案https://stackoverflow.com/a/57430695/7301439

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57417075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档