设置 contentInset 时 UINavigationBar 自动折叠

Posted

技术标签:

【中文标题】设置 contentInset 时 UINavigationBar 自动折叠【英文标题】:UINavigationBar collapses automatically when contentInset is set 【发布时间】:2018-10-10 15:04:11 【问题描述】:

我在UINavigationController 中使用单视图控制器制作了简单的项目。在视图控制器中,我添加了UITableView 并设置了contentInset.top = 52

当我将一些视图控制器推入导航堆栈并弹回时,大导航栏会折叠,如下图所示。

但如果我不设置contentInset,那一切都会正常工作。

【问题讨论】:

【参考方案1】:

您应该激活安全区域相对边距和安全区域布局指南:

同样在界面生成器的 pin 表视图中到 Superview 而不是安全区域:

【讨论】:

【参考方案2】:

尝试设置 prefersLargeTitles = true

navigationController?.navigationBar.prefersLargeTitles = true

另外,不想在view detailViewControl中显示大标题,可以设置largeTitleDisplayMode = .never

navigationItem.largeTitleDisplayMode = .never

【讨论】:

以上是关于设置 contentInset 时 UINavigationBar 自动折叠的主要内容,如果未能解决你的问题,请参考以下文章

设置contentInset时MJRefresh下拉刷新异常

iPhone:在为导航栏显示/隐藏设置动画时无法为 contentInset 设置动画

设置 contentInset 并且 tableViewHeader 中的 UITextField 变为活动状态时 UITableView 向下滚动

WKWebView+contentInset 使内容大小错误

UITableView ContentInset 和 ContentOffset

在出现键盘时处理 tableView contentInset