我有以下视图,其中包括导航栏,搜索栏和表格视图 - 左侧图片是我拥有的给定视图,右侧是我想要实现的视图 - 基本上只需隐藏导航栏并调整所有内容。
目前,我已设法使用从搜索框到superview top属性的垂直空间约束来隐藏和调整所有内容的大小 -
我正在寻找隐藏导航栏的最简单的方式,并调整搜索框+表的大小以填满整个屏幕。
是否有任何方式来实现它并利用iOS 6自动布局系统?
我目前的解决方案感觉不自然。
答案 0 :(得分:6)
如果这是您需要更改的唯一约束,那么您可以在视图或视图控制器中为该一个约束创建一个IBOutlet,然后根据您需要更改的时间简单地修改约束:
if(shouldHide){
self.nibTitleBarConstraint.constant = 0.f;
}
else{
self.nibTitleBarConstraint.constant = 44.f;
}
如果您想要为更改设置动画,只需将-layoutIfNeeded
粘贴到动画上下文中:
[UIView animateWithDuration:0.33f
animations:^{
[view layoutIfNeeded];
}];
这适用于您想要修改的任何约束常量(高度,顶部空间等),只要您的其他约束知道如何对该视图约束中的更改做出反应。
答案 1 :(得分:1)
你能说:
[[self navigationController] setNavigationBarHidden:YES animated:NO];