我有一个UIViewController,显示带有UINavigationBar的视图。这个UINavigationBar是在UINavigationController中自动创建的。
我希望在第一个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];
告诉我
未为约束
准备视图层次结构
我不熟悉自动布局约束......你的帮助会非常感激:)谢谢!
答案 0 :(得分:-4)
您可以尝试手动设置框架,而不是使用约束,如下所示:
self.navigationController.navigationBar.frame = CGRectMake(0, 44, screenWidth, screenHeight)
这将使navBar从顶部44像素,允许空间插入另一个栏