【问题标题】:swift: TableViewCell doesn't update constraints until scrollingswift:TableViewCell 在滚动之前不会更新约束
【发布时间】:2019-03-06 13:44:41
【问题描述】:

我有一个包含 2 个标签的 tableviewCell。 右边的有一个固定的宽度和固定的尾随空间到超级视图,左边的一个固定的前导空间到超级视图和尾随到右标签。 有时我只需要左边的标签,在这种情况下,我希望左边的标签有一个固定的尾随空间来代替超级视图。因此,我创建了第二个非活动约束并在我的代码中执行此操作:

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
}

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

【问题讨论】:

  • 试试 tableCell.layoutIfNeed()

标签: swift


【解决方案1】:

为了一种简单的方法,您可以将它们嵌入水平的UIStackview 并设置

self.rightlb.isHidden = true

它会自动消失,没有宽度,在你当前的代码中也要确保

tableCell?.layoutIfNeeded()

更改约束后

【讨论】:

    【解决方案2】:

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

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

    希望这可行

    【讨论】:

      猜你喜欢
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      相关资源
      最近更新 更多