自动增加/减少 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 viewright to content viewbottom to content viewverticle to your first label

然后在您的 viewdidLoad 方法中添加 YourTableView.estimatedRowHeight = 200 -> 给出您想要的任何高度。

最后定义如下方法:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 
        return UITableViewAutomaticDimension
    

你很高兴。

【讨论】:

我认为这就是我的限制

以上是关于自动增加/减少 UITableViewCell 中的 UILabelView 高度?的主要内容,如果未能解决你的问题,请参考以下文章

添加子视图后,UITableViewCell contentView 框架大小会自动增加吗

CNN 的自动编码器 - 减少或增加过滤器?

SQL语句批量增加减少数量

点击增加或者减少商品数量并且自动计算总价格

AlamofireImage 没有释放内存

如何在自定义 UITableViewCell 中增加 Label 的高度