iOS:3 UILabels互相约束

时间:2016-08-30 08:18:57

标签: ios objective-c autolayout storyboard nslayoutconstraint

我彼此有3 UILabes。第一个的最高约束是20superview,第二个是20first label。对于20,{3}是second。但有时第一和第二个标签的文本都是空的。我只想让我的第三个标签变为20superview,但是当我的约束设置为20+20+20 to superview.

是否可以仅使用故事板解决此问题,或者我必须使用一些代码。

对不起我的英语很差,请帮帮我。

3 个答案:

答案 0 :(得分:2)

您可以通过编程方式执行此操作,获取所有标签的HeightTop Space限制的出口。

检查标签文字,如果为空,则将HeightTop 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,这样它们就能很好地显示出来。