UITableViewCell阻止UILabel扩展高度

时间:2018-03-19 17:21:42

标签: uitableview autolayout uilabel constraints

我有一个TableViewController,其中包含一个包含单个UILabel的自定义UITableViewCell。标签将接收可变长度的文本,并应相应地调整高度。我想使用自动布局,iOS10 ++。

然而,似乎电池正在阻止标签扩展其高度。 我对标签有限制,将顶部,底部,左侧和右侧固定在单元格的contentView上。 行标签数= 0,并设置为换行模式= WordWrap。 我已将self.tableview.rowHeight设置为UITableViewAutomaticDimension,并将估计的行高设置为各种大小但没有成功。 我已经增加(和减少)标签的内容拥抱优先级和垂直抗压性,但这没有效果。

这听起来像许多其他问题的重复,但我读过的都没有解决我的问题。

我注意到的一些线索: 1)如果我删除标签的底部约束,标签会正确扩展,但(当然)单元格不会膨胀,因此标签在单元格底部下方展开后无法完全看到。因此,我得出结论,该单元正在阻止标签扩展。 2)如果我将tableview旋转到横向并返回到纵向,则第一个单元格会正确展开。因此,在旋转期间发生的事情至少解决了第一个单元格的问题,并且还证明了单元格和标签可以根据需要进行扩展。

我觉得有些不对劲,但无法理解。我非常接近回到手动计算高度的旧版本并将其返回到heightForRowAtIndexPath委托方法。

我将不胜感激任何建议。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我终于想通了。

总之,我在tableView中配置了单元格(包括设置标签的文本)willDisplayCellAtIndexPath ...

但似乎(显而易见)要使自动调整工作,必须在tableView cellForRowAtIndexPath中配置单元格。 将配置移动到cellForRowAtIndexPath中,突然一切都开始正常运行。

希望这可以帮助任何有同样问题的人。我挣扎了几天。