UILabel在文本更改后不换行

问题描述 投票:1回答:2

enter image description here

我有一个UI标签,并且我将numberOfLines设置为0,以便在需要时自动换行。

我有时会更改文本。有时只需要一行,但是当文本太长时,它会截断而不是换行。仅当我刷新表视图并调用reloadData()时,标签才会换行。有没有一种方法可以自动包装标签而无需调用此reloadData()

重新加载表格视图之前

enter image description here

重新加载表格视图后

enter image description here

非常感谢

ios swift uilabel
2个回答
1
投票

当您更改表格视图单元格中标签中的文本时,表格视图不会自动重新计算单元格大小。

为此,您可以重新加载数据-如您所见-或执行以下两行:

tableView.beginUpdates()
tableView.endUpdates()

如果要从单元格类的[[inside更新标签中的文本,则要使用委托/协议模式来告诉表视图控制器执行这两行。


0
投票
重新加载单元格是使其正确布局的正确方法。但是您不必调用reloadData(这会重新加载整个表格)。您可以执行reloadRows(at:with:),仅为这一行提供索引路径。它还允许您指定所需动画的性质,如果有的话。
© www.soinside.com 2019 - 2024. All rights reserved.