我有一个自定义UIView
,其中列出了"子视图"使用带有一些垂直间距约束的自动布局。
@"V:|-(10)-[_label]-(10)-|
现在,此视图已添加到控制器的视图中,我希望可以折叠/展开它。为此,我添加了一个高度约束,我将其调整为0或给定高度。
代码:
- (void)toggleView:(id)sender
{
self.viewVisible = !self.viewVisible;
self.headerHeightConstraint.constant = self.viewVisible ? 100 : 0;
[UIView animateWithDuration:0.5 animations:^{
[self.view layoutIfNeeded];
}];
}
问题在于,当我折叠视图时,我有一些自动布局异常,因为视图的0高度与内部标签视图的垂直间距冲突。
所以问题是,如何折叠具有内部高度约束的视图?
" Here"是一个示例项目。
欢呼声, 扬
答案 0 :(得分:0)
只需更改垂直间距的优先级即可。 UILayoutConstraints在创建它们时默认优先级为1000,因此您只需将垂直间距的优先级更改为小于此值即可,因此高度约束将始终优先于垂直间距。
将视觉格式更改为ff:
@"V:|-(10@999)-[_label]-(10@999)-|