【问题标题】:Automatically increase/decrease UILabelView Height in UITableViewCell?自动增加/减少 UITableViewCell 中的 UILabelView 高度?
【发布时间】: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

标签: ios swift xcode uitableview constraints


【解决方案1】:
  1. 设置 tableView.rowHeight = UITableViewAutomaticDimension
  2. 在你的代码中去掉这个函数 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
  3. 设置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
    }

你很高兴。

【讨论】:

  • 我认为这就是我的限制
猜你喜欢
  • 1970-01-01
  • 2021-08-16
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 2020-04-22
相关资源
最近更新 更多