swift:TableViewCell 在滚动之前不会更新约束
Posted
技术标签:
【中文标题】swift:TableViewCell 在滚动之前不会更新约束【英文标题】:swift: TableViewCell doesn't update constraints until scrolling 【发布时间】: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() 【参考方案1】:为了一种简单的方法,您可以将它们嵌入水平的UIStackview
并设置
self.rightlb.isHidden = true
它会自动消失,没有宽度,在你当前的代码中也要确保
tableCell?.layoutIfNeeded()
更改约束后
【讨论】:
【参考方案2】:尝试在以编程方式调整约束后添加此代码
tableCell?.setNeedsLayout()
tableCell?.layoutIfNeeded()
希望这可行
【讨论】:
以上是关于swift:TableViewCell 在滚动之前不会更新约束的主要内容,如果未能解决你的问题,请参考以下文章
UITableView 在滚动或重新加载 tableviewcell 之前不显示远程图像
Swift:动态更改 TableViewCell 高度和动态更改 WebView 高度
IOS swift我可以从TableViewCell中获取当前可见视图吗