迅速:TableViewCell直到滚动才更新约束

时间:2019-03-06 13:44:42

标签: swift

我有一个tableviewCell包含2个标签。 右边的框具有固定的宽度和固定的尾随空间以进行查看,而左边的框具有固定的前导空间以进行观察并尾随到右标签。 有时我只需要左边的标签,在这种情况下,我希望左边的标签具有固定的尾随空间以供查看。因此,我创建了第二个非活动约束,并在我的代码中执行了此操作:

if(entry.right.isEmpty) {
    tableCell?.longConstraint.isActive = true
    tableCell?.shortConstraint.isActive = false        
    tableCell?.rightLabel.isHidden = true
} else {
    tableCell?.longConstraint.isActive = false
    tableCell?.shortConstraint.isActive = true
    tableCell?.rightLabel.isHidden = false
}

但是当我加载表格时,所有显示的单元格都将激活默认的约束,并且只有在视线消失并再次进入后,它们才能正确显示。

2 个答案:

答案 0 :(得分:0)

为了方便,您可以将它们嵌入水平UIStackview并设置 self.rightlb.isHidden = true 它将自动消失并且没有宽度,同时在您当前的代码中确保 tableCell?.layoutIfNeeded() 更改约束后

答案 1 :(得分:0)

以编程方式调整约束后,尝试添加此代码

tableCell?.setNeedsLayout()
tableCell?.layoutIfNeeded()

希望这行得通