【问题标题】:How can I set a multiline UILabel inside UITableCell on Swift 3?如何在 Swift 3 上的 UITableCell 中设置多行 UILabel?
【发布时间】:2017-03-28 07:49:27
【问题描述】:

我正在尝试在UITableCell 内设置多行UILabel

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

我尝试使用:

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

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

如何使我的 UILabel 成为多行?

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

提前致谢!

【问题讨论】:

  • 使用 tableview 自动尺寸属性和估计行高
  • @Rajat 谢谢!最后我得到它改变 UITableCell 的行的高度。
  • 很高兴听到这个消息:)

标签: ios swift uilabel swift3 multiline


【解决方案1】:

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

【讨论】:

  • 我无法设置换行符,因为我从数据库中检索了我的文本并且我不想为我的标签设置一个固定的宽度。
  • 然后你需要给它前导和尾随约束或前导/尾随相对框架。
  • 谢谢!最后我得到了它为单元格的行添加了一个新的高度。
【解决方案2】:

最后我能够让我的多行 UILabel 添加此代码:

self.tableView.estimatedRowHeight = 50.0

并减少multiplier 值。 UITableCell 的高度似乎放不下文字。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多