Autolayout在自定义UITableViewCell中被忽略

尽pipe已经为所有元素(包括单元格计算其高度所需的垂直元素)设置了约束,但自动布局似乎被忽略:所有单元格都被挤压。

以下是故事板中结果和约束的截图。 在这里输入图像说明

在这里输入图像说明

在保存tableView的VC中,这里是viewDidLoad中的代码

tableView.estimatedRowHeight = 120.0 tableView.rowHeight = UITableViewAutomaticDimension 

注释掉第二行给出的单元格高度为120.0,但Autolayout也被忽略。

谢谢


更新

为了简化界面,我留下了一个标签作为约束:

  • 领先的空间,超级观景
  • 顶级空间来监视
  • 固定宽度和高度(100和100)
  • 底部空间到容器边距,以确保单元格具有所有垂直约束来确定其高度

通过这个简化的界面,自动布局仍然没有被考虑到,这暗示着这个问题不是来自于严格设置的限制。

在“尺寸”检查器中,行高设置为120,并选中“自定义”。 单元格具有正确的自定义类,单元重用标识符正确。


更新:find解决scheme

这是一个简单的错误,请参阅下面的答案。

自动布局被忽略,因为原型单元格和单元格的UIView都被赋予了IB中的自定义单元类。

设置UIView回到UIView类解决了这个问题。

我认为问题在于你正在执行:

 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return x } 

你需要删除这个函数来为tableview计算单元格的自动高度。