“左侧详细信息”样式单元格文本中的详细信息标签被切断-迅速

Posted

技术标签:

【中文标题】“左侧详细信息”样式单元格文本中的详细信息标签被切断-迅速【英文标题】:Detail Label in "Left Detail" style cell text getting cut off- swift 【发布时间】:2016-02-16 21:07:46 【问题描述】:

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

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

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

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

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

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

【问题讨论】:

你在使用自动布局吗?没有自动布局的estimatedRowHeightUITableViewAutomaticDimension 的单元格不是动态的。 【参考方案1】:

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

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

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

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

无论哪种方式,我都建议submitting a bug report 使用一个小示例项目来说明“左侧细节”问题,因为 Apple 已经修复了许多此类问题,并且内置样式的自我调整大小更加有用。

【讨论】:

非常感谢!我在cellForRowAtIndexPath 中添加了一些代码,以检查详细标签中的文本有多长,并在文本超过 100 个字符时将高度设置为更高。有没有更好的方法来计算高度应该多高?我可能只是制作一个自定义单元格——我首先使用左样式样式的唯一原因是因为它“更容易”。

以上是关于“左侧详细信息”样式单元格文本中的详细信息标签被切断-迅速的主要内容,如果未能解决你的问题,请参考以下文章

具有标题和详细信息字段的自调整表格视图单元格

iOS Swift - 带有左侧细节和右侧细节和字幕的 UITableViewCell?

如何让一个单元格在ios中保存多个文本标签

以编程方式设置静态单元格的详细文本标签

将文本从 UIAlertView 文本字段传递到自定义单元格标签

根据内容动态调整tableview单元格的高度 - iOS Swift