我彼此有3 UILabes
。第一个的最高约束是20
到superview
,第二个是20
到first label
。对于20
,{3}是second
。但有时第一和第二个标签的文本都是空的。我只想让我的第三个标签变为20
到superview
,但是当我的约束设置为20+20+20 to superview.
时
是否可以仅使用故事板解决此问题,或者我必须使用一些代码。
对不起我的英语很差,请帮帮我。
答案 0 :(得分:2)
您可以通过编程方式执行此操作,获取所有标签的Height
和Top Space
限制的出口。
检查标签文字,如果为空,则将Height
和Top Space
约束Constant
设置为0
。
像,
如果第一个标签文字为空白,则将第一个标签Height constraint
常量设置为0
,将Top Space
约束Constant
设置为0
。同样可以检查其他标签。
答案 1 :(得分:1)
考虑到您的要求,我为它创建了一个带有3个标签的演示。但我已经在堆叠视图中添加了垂直方向的3个标签。然后我在Stack View外面的UIView中添加了一个按钮,然后点击按钮我隐藏了第二个标签。这样做我得到了你需要的结果。
@IBAction func btnClicked(sender: AnyObject) {
lbl2.hidden = true
}
希望这有帮助。
答案 2 :(得分:0)
您可以在UIView中添加每个标签。将顶部Label约束设置为20到superview(在这种情况下,将是20到容器UIView的顶部) 然后让UIView 1在superview中排名前0。 UIView 2在UIView 1中排名前0,UIView 3在UIView 2中排名0。
然后你可以隐藏每个UIView,当你没有任何文本时,它们会显示相应的UILabel,这样它们就能很好地显示出来。