表视图单元格中的文本未包装到第二行

时间:2017-07-11 10:29:15

标签: ios swift xcode uitableview interface-builder

我有一个可能需要显示长文本的单元格。在这种情况下,它应该换行到第二行。

我在属性Inspector中将设置为 2 并将换行符设置为自动换行。 Interface Builder预览确认并按预期/期望行事。

enter image description here

在构建和运行时,文本仅限于一行并在尾部进行切割: enter image description here

属性检查器中的其他更改似乎也没有效果(例如文本对齐)!

6 个答案:

答案 0 :(得分:5)

Swift 3

在tableview中添加两个方法。

 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
                return UITableViewAutomaticDimension
 }

 func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
                return UITableViewAutomaticDimension
 }

答案 1 :(得分:5)

要获得没有圆点的线条,请执行以下操作 -

  1. 取出单元格内的UILabel,转到属性检查器。
  2. 在属性检查器中查找行并将其更改为0.
  3. 然后,将换行符更改为WordWrap
  4. 我认为这会奏效。

答案 2 :(得分:3)

如果有人还有问题...... 这是swift 4 Xcode 9 iOS 11的解决方案

  

在cellForRowAt tableview函数中你只需要添加一行代码

cell?.textLabel?.numberOfLines = 0

答案 3 :(得分:0)

您可以根据标签的文字大小实现自动细胞大小调整

  1. 在您的单元格中,为UILabel的顶部和底部添加约束,但不为单元格高度或标签高度添加约束
  2. 在您的表格视图中设置
    tableView.rowHeight = UITableViewAutomaticDimension
  3. 这将使细胞根据标签的内容重新调整大小

答案 4 :(得分:0)

如果要在标签中包含多行,请在属性检查器中将行设置为0 并实施

tableView.rowHeight = UITableViewAutomaticDimension

答案 5 :(得分:0)

可能未正确为UILabel设置约束。因此,UILabel将随着文本的增加而不断扩展。

  • 使用自动布局约束设置UILabel约束,或提供静态宽度(或left和right属性)。
  • 现在标签属性检查器中将行设置为0