如何在Swift 3上的UITableCell中设置多行UILabel?

时间:2016-11-14 15:51:38

标签: ios swift uilabel swift3 multiline

我正在UILabel内设置多行UITableCell

UILabel具有比例width作为参考设备的屏幕(带有乘数)。它内部的文本可以更改,因此当文本的宽度高于UILabel宽度的空间时,我需要适应能够多线的UILabel

我尝试使用:

myLabel.lineBreakMode = .byWordWrapping
myLabel.numberOfLines = 0
myLabel.sizeToFit()

但它总是显示在一行上,截断溢出UILabel宽度的文本。

如何让我的UILabel成为多线?

编辑:我无法在文本中添加细分,因为我从数据库中检索文本。

提前致谢!

3 个答案:

答案 0 :(得分:1)

这两行是自动计算单元格高度所必需的。将它们放在viewDidLoad中。

self.tableView.estimatedRowHeight = 50.0
self.tableView.rowHeight = UITableViewAutomaticDimension

答案 1 :(得分:0)

如果希望标签从一行切换到多行,则必须在字符串文本中使用\ n或换行符char指定换行符,或者可以为标签的宽度设置约束,或者您可以为标签设置前导和尾随约束。如果其中一个方法已完成,则标签将显示为达到最大行数所需的行数,如果设置为0则为无限。

答案 2 :(得分:0)

最后我能够使我的多线UILabel添加此代码:

self.tableView.estimatedRowHeight = 50.0

并减少multiplier值。看来文本无法适应UITableCell的高度。