Xcode 锁定视图到弹跳导航栏

Posted

技术标签:

【中文标题】Xcode 锁定视图到弹跳导航栏【英文标题】:Xcode lock view to bouncing navigation bar 【发布时间】:2018-05-24 20:21:01 【问题描述】:

情况

我有一个UIView,它对安全区域的底部有一个布局约束。这是在 UIViewControllerUINavigationController 内。当导航栏位于大标题和“常规”标题之间时,它可以正常工作。但是,当弹跳较低时,UINavigationBar 会覆盖自定义视图。

问题

如何将自定义视图的位置锁定到 弹跳 NavigationBar 的底部。 Storyboard 解决方案将是最佳的,Swift 解决方案就足够了。

【问题讨论】:

【参考方案1】:

您需要在navigationBar中添加menuView

let menuView = UIView()
menuView.backgroundColor = .red
menuView.translatesAutoresizingMaskIntoConstraints = false

self.navigationController?.navigationBar.addSubview(menuView)

[menuView.leadingAnchor.constraint(equalTo: (self.navigationController?.navigationBar.leadingAnchor)!),
menuView.topAnchor.constraint(equalTo: (self.navigationController?.navigationBar.bottomAnchor)!),
menuView.trailingAnchor.constraint(equalTo: (self.navigationController?.navigationBar.trailingAnchor)!),
menuView.heightAnchor.constraint(equalToConstant: 60)].forEach $0.isActive = true 

结果

但是你必须维护 contentInset 的 UITableView/UICollectionView/UIScrollView & 滚动指示器

建议

在这种情况下使用 TableView/CollectinView 的 Section Header。

【讨论】:

有没有办法在故事板中实现这一点?

以上是关于Xcode 锁定视图到弹跳导航栏的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的导航栏在 Xcode 中消失了?

Xcode 导航栏、标签栏、表格视图标题未显示

iOS 通过故事板将 UIView 锁定在导航栏下方和 UITableView 上方

缩放弹跳+导航栏后退按钮单击=应用程序崩溃

xcode 5中的导航栏对象不显示后退按钮并且没有功能

xcode / storyboard:无法将栏按钮拖动到顶部的工具栏