我有一个非常微不足道的案子。 有一个容器(浅灰色)有一个HeaderLabel(lines = 0),边距为16px,View(蓝色)。
如果HeaderLabel有一些值,它应放在View上方。
否则,如果我们没有HeaderLabel的值,它就会消失,View会粘在Container的顶部。
我尝试使用各种优先级为HeaderLabel和Container(常量> = 0)创建两个View.Top约束。
如果没有文本值,则删除代码中的HeaderLabel
if (!text) {
[headerLabel removeFromSuperview];
}
但似乎没有用。它只显示容器顶部和视图之间的差距
如何使用IB管理此案例?或者它应该通过另一种方式解决?
答案 0 :(得分:0)
我建议使用此方法,这会使滚动条视图约束更大,以便滚动视图将覆盖标签和间隙。 首先,为约束创建一个IBOutlet。
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *NAME;
然后,将其与scrollView的垂直约束连接。
之后,检查标签值并将约束设置为0,值为nil。
if (!text){
[UIView animateWithDuration:0.3 animation:^{
self.NAME.constant = THE HEIGHT OF SCROLLVIEW + THE GAP;
}]
}
答案 1 :(得分:0)
1个视图(viewLabel),带有前导,尾随&顶部到超级视图,底部到视图(蓝色视图)。
用于viewLabel中的标签设置,其中约束为leading,trailing,top&底部到superview并设置line = 0的标签号。 如果有的话设定值
label.text = @"Value";
设置
label.text = @"";
自动布局自动管理标签高度及其superView(viewLabel)和设置值[self.view layoutIfNeeded]