我有一个自定义uitableview单元格中的标签。我正在使用自动布局来定位标签。我的问题是如何在没有任何文本时将标签的高度设置为零。或者如何使标签高度为0.该项目支持ios 8,因此使用stackview是不可能的。标签也很宽广,我无法设置恒定的高度约束。我的布局如下所示。
答案 0 :(得分:5)
答案 1 :(得分:0)
在tableviewcell中给出除UILabel之外的高度约束,你需要隐藏它。更改它的Tableviewcell高度。
例如,您的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,并在需要时将内容拥抱优先级设置为