设置UIlabel的高度

Setting the height of UIlabel

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

您可以设置标签的高度限制 >= 0。标签会根据内容更新其大小,如果缺少文本,高度将为 0。

在 tableviewcell 中给出除 UILabel 之外的高度限制,你需要 hide.Change 你的 Tableviewcell 高度它有效。

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

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

}

另一个可能的解决方案是,设置高度约束并取 outlet 并在文本为 nil 时将其 constant 设置为零。

只需按住 ctrl 并从高度约束拖动到 class 即可将出口连接到约束。

然后您可以在需要时通过更改它的常量以编程方式更改它的高度。

例如,

@IBOutlet weak var labelHeightConstraint: NSLayoutConstraint!

并改变常量,如

 self.labelHeightConstraint.constant = 0

希望这会有所帮助:)

首先将高度约束设置为标签。 ctrl + 将高度约束拖动到 class 以将出口连接到约束。即

@IBOutlet 弱变量 LabelHeightConstraint: NSLayoutConstraint!

并在实现中将标签的高度约束设置为零。如下图....

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

这个逻辑一定行得通......

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