文本更改后 UILabel 不换行
UILabel not wrapping after the text is changed
我有一个 UI 标签,我将 numberOfLines
设置为 0,以便在需要时换行。
我偶尔会更改文本。有时它只需要一行,但当文本太长时它会截断而不是换行。标签仅在我刷新 table 视图时换行,调用 reloadData()
.
有没有办法不用调用reloadData()
自动换行标签?
重新加载 table 视图之前:
重新加载 table 视图后:
当您更改 table 视图单元格中标签中的文本时,table 视图不会自动重新计算单元格大小。
为此,您可以重新加载数据 - 如您所见 - 或者执行以下两行:
tableView.beginUpdates()
tableView.endUpdates()
如果您要从 内部 单元格 class 更新标签中的文本,您需要使用委托/协议模式来告诉 table 执行这两行的视图控制器。
重新加载单元格是让它正确布局的正确方法。但是您不必调用 reloadData
(它会重新加载整个 table)。您可以执行 reloadRows(at:with:)
,仅为这一行提供索引路径。它还允许您指定所需动画的性质(如果有)。
我有一个 UI 标签,我将 numberOfLines
设置为 0,以便在需要时换行。
我偶尔会更改文本。有时它只需要一行,但当文本太长时它会截断而不是换行。标签仅在我刷新 table 视图时换行,调用 reloadData()
.
有没有办法不用调用reloadData()
自动换行标签?
重新加载 table 视图之前:
重新加载 table 视图后:
当您更改 table 视图单元格中标签中的文本时,table 视图不会自动重新计算单元格大小。
为此,您可以重新加载数据 - 如您所见 - 或者执行以下两行:
tableView.beginUpdates()
tableView.endUpdates()
如果您要从 内部 单元格 class 更新标签中的文本,您需要使用委托/协议模式来告诉 table 执行这两行的视图控制器。
重新加载单元格是让它正确布局的正确方法。但是您不必调用 reloadData
(它会重新加载整个 table)。您可以执行 reloadRows(at:with:)
,仅为这一行提供索引路径。它还允许您指定所需动画的性质(如果有)。