2

我有一个表格视图控制器,其原型单元格样式为“Left Detail”。

- 在我的 viewDidLoad() 中,我有self.tableView.estimatedRowHeight = 40并且self.tableView.rowHeight = UITableViewAutomaticDimension像许多解决方案所说的那样。但是,当我的详细信息标签变得太大(如描述单元格)时,单元格不会随文本一起增长。

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

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

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

我错过了一些明显的东西吗?或者“左侧细节”样式中是否存在限制单元格高度的内容?

4

1 回答 1

0

您没有遗漏任何我知道的明显内容,但可能会遇到涉及内置单元格样式的边缘情况。自我调整大小存在少量问题,它主要适用于内置样式,但在某些情况下可能会失败

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

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

您绝对不需要包含heightForRowAtIndexPath. 您应该删除它,然后看看您是否可以解决cellForRowAtIndexPath. 如果没有,您可能必须使用模仿左侧细节样式的自定义单元格。

无论哪种方式,我都建议提交一个带有小示例项目的错误报告,以说明“左侧细节”问题,因为 Apple 已经修复了许多这些问题,并且内置样式自调整大小更加有用。

于 2016-02-16T23:30:50.847 回答