设置UIlabel的高度

时间:2016-04-27 09:22:27

标签: ios swift uitableview uilabel ios9

我有一个自定义uitableview单元格中的标签。我正在使用自动布局来定位标签。我的问题是如何在没有任何文本时将标签的高度设置为零。或者如何使标签高度为0.该项目支持ios 8,因此使用stackview是不可能的。标签也很宽广,我无法设置恒定的高度约束。我的布局如下所示。enter image description here

5 个答案:

答案 0 :(得分:5)

您可以设置标签的高度约束> = 0.标签会将其大小更新为内容,如果缺少文字,则高度为0。

enter image description here

答案 1 :(得分:0)

在tableviewcell中给出除UILabel之外的高度约束,你需要隐藏它。更改它的Tableviewcell高度。

enter image description here

例如,您的UILabel身高是' 30'和tableviewcell的高度是130.你可以给出130-30 = 100的单元格高度。

//only sample code
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.row == 0 
    return 130
else 
    return 100

}

答案 2 :(得分:0)

另一种解决方案是,设置高度约束并获取outlet,并在文本为零时将其设为constant为零。

只需按住Ctrl键+从高度约束拖动到类,即可将出口连接到约束。

然后你可以通过改变它的常量以编程方式改变它的高度。

例如,

@IBOutlet weak var labelHeightConstraint: NSLayoutConstraint!

并改变常数,如

 self.labelHeightConstraint.constant = 0

希望这会有所帮助:)

答案 3 :(得分:0)

首先将Height Constraint设置为Label。 ctrl +将高度Constraint拖动到类以将插座连接到约束。即

@IBOutlet weak var LabelHeightConstraint:NSLayoutConstraint!

并在实现中将Label的Height Constraint设置为零。如下图所示......

self.LabelHeightConstraint.constant = 0;
if(check the label contains data)
{
    self.LabelHeightConstraint.constant = 20;
}
else
{
    self.LabelHeightConstraint.constant = 0;
}

这个逻辑肯定会起作用......

答案 4 :(得分:0)

将文本设置为nil,并在需要时将内容拥抱优先级设置为