【发布时间】:2026-01-01 19:40:01
【问题描述】:
我有一个 UIViewController 显示一个带有 UINavigationBar 的视图。此 UINavigationBar 是在 UINavigationController 中自动创建的。
我想在第一个 UINavigationBar 的顶部显示第二个 UINavigationBar,用于特定模式,并带有顶部的翻译动画。
我发现由于 UINavigationBar 是自动创建的,因此在第一个 UINavigationBar 中添加第二个 UINavigationBar 会更容易,只需简单:
[self.navigationController.navigationBar addSubview:secondNavigationBar];
我现在正在尝试添加一个“y”约束,以便能够翻译 secondNavigationBar:
self.secondNavigationBarTopConstraint = [NSLayoutConstraint constraintWithItem:secondNavigationBar
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.navigationController.navigationBar
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:-secondNavigationBar.height];
那么,
[self.navigationController.navigationBar addConstraint: self.secondNavigationBarTopConstraint];
告诉我
无法修改由 a 管理的 UINavigationBar 的约束 控制器
和
[self.view addConstraint: self.secondNavigationBarTopConstraint];
告诉我
视图层次结构没有为约束做好准备
我不熟悉自动布局约束...非常感谢您的帮助 :) 谢谢!
【问题讨论】:
标签: ios autolayout nslayoutconstraint