【问题标题】:UItableView automaticDimension not working on custom UITableViewCellUItableView automaticDimension 不适用于自定义 UITableViewCell
【发布时间】:2021-06-01 15:59:28
【问题描述】:

我知道这是一个在这里被问了很多的问题,但是我尝试了所有找到的解决方案,但都没有奏效

这是我的自定义 UITableViewCell 的内容

这是标签的属性

及其约束:

这是开关的约束

在控制器 viewDidLoad 中,我有:

tableView.rowHeight = UITableView.automaticDimension //scale height to content
tableView.estimatedRowHeight = 44

据我所知,应该足够了。

但结果是:

如您所见,只显示标签的第一行。

就像我之前说的,我尝试了多种解决方案,例如:

  • 检查约束
  • 将 tableView.reloadData() 添加到 viewDidLoad
  • 用“return UITableView.automaticDimension”覆盖 heightForRowAt
  • 在 cellForRowAt 返回单元格之前添加 cell.setNeedsUpdateConstraints() 和 cell.updateConstraintsIfNeeded() 结果总是一样的。 唯一部分起作用的是:
  • 移除标签的底部约束
  • 或者给tableView.rowHeight一个数值,如果内容发生变化,这显然是行不通的。

那么我错过了什么?

【问题讨论】:

    标签: ios swift uitableview


    【解决方案1】:

    Switch 绑定到 cell.contentView 上下 8 倍

    Label 绑定到 cell.contentView 上下 8 倍

    Autolayout 试图同时兼顾两者,但布局在确定预期高度时存在问题。

    尝试删除 Switch 的顶部和底部间距并将其垂直居中放置在容器中,这应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多