"Left Detail" 样式单元格文本中的详细信息标签被截断- swift

Detail Label in "Left Detail" style cell text getting cut off- swift

我有一个 table 视图控制器,其原型单元格的样式为 "Left Detail."

-在我的 viewDidLoad() 中,我有 self.tableView.estimatedRowHeight = 40self.tableView.rowHeight = UITableViewAutomaticDimension 就像许多解决方案所说的那样。然而,当我的细节标签变得太大时(比如描述单元格),单元格不会随着文本增长。

-我也尝试在 viewDidAppear(animated:) 中重新加载数据,但这没有帮助。

-我现在的 heightForRowAtIndex 函数中没有任何内容,但我也尝试设置它,但没有解决我的问题。

-填充单元格后,我还在我的 cellForRowAtIndexPath 中尝试了 cell.sizeToFit()。

我是不是遗漏了什么明显的东西?或者 "Left Detail" 样式中是否存在限制单元格高度的内容?

你没有遗漏任何我知道的明显的东西,但很可能 运行 涉及到涉及内置单元格样式的边缘情况。自我调整大小存在少量问题,它主要适用于内置样式,但 can fail for certain cases.

这是内置样式管理其标签和约束的方式不同于自定义单元格样式的副作用。如果您在调试器中检查内置单元格的内容视图,它的约束数组是空的。

对于一种边缘情况,如果单元格不需要内置标签之一,Apple 会通过从单元格中完全删除该视图来优化它。当该单元格被重用并且需要重新添加标签时,约束不会针对该初始事件进行更新。可以通过确保两个标签始终有文本来解决该特定问题,因此视图永远不会被删除。

您绝对不需要包含 heightForRowAtIndexPath。您应该删除它,然后查看是否可以解决 cellForRowAtIndexPath 中的内置样式问题。如果不是,您可能必须使用模仿 Left Detail 样式的自定义单元格。

无论哪种方式,我都建议 submitting a bug report 使用一个小示例项目来说明 "Left Detail" 问题,因为 Apple 已经解决了其中的许多问题并且内置样式自调整大小更有用。