自动增加/减少 UITableViewCell 中的 UILabelView 高度?
Posted
技术标签:
【中文标题】自动增加/减少 UITableViewCell 中的 UILabelView 高度?【英文标题】:Automatically increase/decrease UILabelView Height in UITableViewCell? 【发布时间】:2017-10-12 18:01:13 【问题描述】:您好,我有一个带有 x# 个单元格的 UITableView。最后一个单元格我有两个 UILabel。当设置第二个 UILabel 文本时,我试图让单元格和 UILabel 调整大小以显示文本。
这是我所拥有的:
UILabel - LabelBio(橙色)有:
行数:0 基线:对齐基线 换行:自动换行 自动收缩:固定字体大小
ContentView、LabelSellerInfo 和 LabelBio 的约束设置如下:
标签卖家信息
标签生物
内容视图
有了这些设置,就可以得到:
我尝试了很多变化,但似乎无法让 Bio 标签增长和缩小,有时如果我让标签增长,细胞仍然太小。
谁能帮助我理解我做错了什么,并告诉我如何正确设置约束以使其正常工作?
谢谢
【问题讨论】:
如果您希望标签根据内容调整高度,请提供以下约束 -:前导、尾随、顶部和高度,高度关系大于或等于 + 行数 = 标签为 0。 你在设置.rowHeight = UITableViewAutomaticDimension
吗?
所以我对 LabelBioView 有 4 个限制。 1)Superview的尾随空格,2)Superview的前导空格,3)顶部空格:LabelSellerInfo,4)高度> = 90。但它不起作用,我有错吗?哦,一个区别是我定义了方法 heightForRowAt 并返回 UITableViewAutomaticDimension
【参考方案1】:
-
设置 tableView.rowHeight = UITableViewAutomaticDimension
在你的代码中去掉这个函数 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
设置LabelBio大于或等于0的高度约束
【讨论】:
所以我添加了 Tushar 建议的三个约束但它不起作用,所以我删除了函数 heightForRowAt 并将高度约束更改为 >= 0 但它仍然无法正常工作。【参考方案2】:这里是步骤...
希望您了解autylayout
。使用约束(left to content view
、right to content view
、bottom to content view
和 verticle to your first label
)
然后在您的 viewdidLoad
方法中添加 YourTableView.estimatedRowHeight = 200
-> 给出您想要的任何高度。
最后定义如下方法:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
return UITableViewAutomaticDimension
你很高兴。
【讨论】:
我认为这就是我的限制以上是关于自动增加/减少 UITableViewCell 中的 UILabelView 高度?的主要内容,如果未能解决你的问题,请参考以下文章