我早些时候发了这篇文章,但是没有得到一个关于如何解决我的问题的答案,所以我再次尝试。希望在约束方面比我有更多知识的人能帮上忙。
简单地说,我有一个UIViewController和一个UITableView。其中一个单元格包含到UILabels。我正在试图弄清楚如何在文本包装时第二次调整UILabel的大小。
这是截图:

我已经尝试过,并向我解释了对LabelBio有四个限制。
但这些似乎不能解决这个问题。我肯定我做错了什么,但我不知道我错过了什么。有人还建议有一个LabelBio到超级视图底部,但这并不是一样的工作。
随附的截图,这是我的结果:

我对约束是陌生的,并不真正理解什么是错的。是一个能够向我提出解决方案的人,这样我才能理解如何使这件事奏效。我所读到的关于约束的每一篇文章都让我相信,这应该是可行的,但实际上并非如此。
我还尝试过定义方法heightForRowAt和退出UITableViewAutomaticDimension,并尝试设置.rowHeight = UITableViewAutomaticDimension。
如果需要更多的信息来帮助我解决我的问题,请告诉我。
我的另一篇文章是:在UILabelView中自动增加/降低UITableViewCell高度?
谢谢你的帮助!!
发布于 2017-10-14 17:11:21
你已经完成了大部分工作。
在contentView中添加Labelbio的底部约束应该足以使contentView能够计算其高度。
发布于 2017-10-14 18:26:33
让我们将其分为三个问题:
UILabel垂直展开以容纳任意文本TableViewCell子类垂直展开以容纳任意内容使UILabel垂直展开以容纳任意文本
定义UILabel时,请确保执行以下操作:
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping这将告诉您的标签不要使用显式提供的行数,并自然打破提供的文字在字界。结合固定或最大宽度,这将为您的标签创建隐式行数(从而隐式高度)。
有关更多信息,请查看文档。
使TableViewCell子类垂直展开以容纳任意内容
苹果包括一款特殊的“自动布局指南”中有关自调整表视图单元格的节。。重要的部分是在表视图(而不是表视图单元格)中设置这两个属性:
tableView.estimatedRowHeight = // Pick an appropriate value
tableView.rowHeight = UITableViewAutomaticDimension设置两个属性后,表视图单元格将使用自动布局来确定其高度。
使两者协同工作
您的表视图单元格现在正在查找它们的内容,以提供隐式高度。您需要创建一个从单元格顶部到底部的完整约束链,以将它们推开到正确的高度。在图片中的示例中:
LabelSellerInfo顶部约束为超级视图上边距LabelSellerInfo底部约束为LabelBio顶部(加上任何边距)LabelBio底部约束为超级视图底部边距您还应该在某种程度上限制LabelBio的宽度或前缘和后缘;您在图像中显示的内容很好。综合起来,这些设置和约束将创建自调整大小的表视图单元格,其中包含基于文本更改高度的LabelBio。
https://stackoverflow.com/questions/46746400
复制相似问题