我有一个包含2个标签的tableviewCell。右边有一个固定的宽度和固定的尾随空间到superview,左边有一个固定的前导空间到superview和trailing到right label。有时候我只需要左边的标签,在这种情况下我希望左边的标签有一个固定的尾随空格来代替。所以,我创建了第二个非活动约束,并在我的代码中执行此操作:
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
}
但是当我加载表格时,所有显示的单元格都有默认约束活动,并且只有在匆匆离开视图后再次显示,它们才会正确显示。
一个简单的方法,你可以将它们嵌入水平UIStackview
并设置
self.rightlb.isHidden = true
并且它会在没有宽度的情况下自动消失,同样在您当前的代码中确保
tableCell?.layoutIfNeeded()
更改约束后
尝试以编程方式调整约束后添加此代码
tableCell?.setNeedsLayout()
tableCell?.layoutIfNeeded()
希望这有效