Ios 隐藏搜索栏视图后更新视图的顶部空间约束
我有自定义UIView和UISearchBar,它们作为视图控制器视图上的子视图放置 在某些情况下,我需要隐藏搜索栏视图,然后我想调整自定义视图的大小。假设搜索栏的高度为44磅。如果它在顶部可见,那么我的自定义视图应该以y=44开始。但若我将搜索栏设置为隐藏,那个么我的自定义视图的y位置应该等于0 我使用故事板并设置所有约束,现在我想更新连接到顶部布局指南的顶部空间约束。默认情况下,它等于44磅。但当我隐藏搜索栏时,我希望将顶部空间设置为0,并将自定义视图的高度增加44磅 我认为自定义视图的所有子视图都将自动更新 这是视图放置在视图控制器的self.view上的方式:Ios 隐藏搜索栏视图后更新视图的顶部空间约束,ios,ios7,ios8,autolayout,Ios,Ios7,Ios8,Autolayout,我有自定义UIView和UISearchBar,它们作为视图控制器视图上的子视图放置 在某些情况下,我需要隐藏搜索栏视图,然后我想调整自定义视图的大小。假设搜索栏的高度为44磅。如果它在顶部可见,那么我的自定义视图应该以y=44开始。但若我将搜索栏设置为隐藏,那个么我的自定义视图的y位置应该等于0 我使用故事板并设置所有约束,现在我想更新连接到顶部布局指南的顶部空间约束。默认情况下,它等于44磅。但当我隐藏搜索栏时,我希望将顶部空间设置为0,并将自定义视图的高度增加44磅 我认为自定义视图的所有
***************
**search bar***
***************
**custom view**
***************
隐藏搜索栏后,应如下所示,并完全覆盖superview:
***************
** **
**custom view**
** **
***************
若要隐藏搜索栏,请以编程方式将第一个视图高度约束设置为0,这将使自定义视图顶部移动到superview的顶部。这也可以设置动画。如果要隐藏搜索栏,请创建高度约束和顶部空间约束的出口,如下所示
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *searchBarTopSpaceHeight;
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *searchBarHeight;
然后将这些值设置为0,就像
_searchBarTopSpaceHeight.constant = 0;
_searchBarHeight.constant = 0;
试试这个解决方案。应该是这样的 蓝色视图应该对顶部视图具有约束,而底部视图应该对紫色视图具有约束。不要忘记为蓝色视图设置高度约束
- (IBAction)test:(id)sender {
[UIView animateWithDuration:0.5 animations:^{
self.heightConstraint.constant = 0;
[self.view layoutIfNeeded];
}];
}
若我将搜索栏的高度限制设置为0,它会工作吗?或者我需要在任何情况下创建其他视图,并将搜索栏放在那里。还可以设置代码示例如何通过编程将高度约束设置为0?谢谢,您可以跳过第一个视图,直接使用UISearchBar。要以编程方式将高度约束设置为0,请创建NSLayoutConstraint属性并将其连接到在IB中创建的约束。\u searchBarHeight.constant=0;哦,太酷了,我甚至不知道我们可以为约束创造出口)太好了。但也许你也知道如何通过编程实现它。谢谢你的回答)我刚刚设置了_searchBarHeight.constant=0;这对我也有用谢谢