UITableViewCell意外行为

时间:2018-03-25 16:50:14

标签: ios swift storyboard uistoryboard

我有UITableViewCell多个UILabels其中一个是多行的。所有UILabels都与content hugging and compression resistance有固定的间距,如下图所示。

enter image description here

在代码tableView中,delegatedataSource rowHeight属性,heightForRowAt设置为UITableViewAutomaticDimension

我尝试了改组并使用content hugging and compression resistance值进行各种安排。但是文本较小的较小单元格的高度保持相同的大小(如下图所示),并且具有更多文本的单元格看起来就像它应该是的那样。 我没有提到任何高度,除了estimatedRowHeight,即135

我用

进行了高度检查
print(cell.frame.height)

它会为所有单元格返回140.0

结果看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:1)

概念:

ContentHugging Resistance :设置优先级时,它对应于视图必须抵制拉伸内容的程度。

例如:如果纵向轴的内容拥抱优先级设置为1000或.required,则表示视图不会超出其内容高度。因此,如果标签有1行,则它不会超出该1行的高度。

内容压缩:恰恰相反,它会抵制压缩视图内容的视图。

解决方案:

对于“布加勒斯特马拉松”标签,将竖直内容设置为.required。

代码:

label.setContentHuggingPriority(.required, for: .vertical)1000