Swift: 获取TableView Prototype Cell中的Label显示多行(自动换行)

Swift: Getting a Label in TableView Prototype Cell to display multiple lines (word wrap)

我正在尝试设置一个表格视图,其中每个单元格的左侧都有一个图像,一个覆盖图像的标签,最后是图像右侧的一个标签,其中包含我想要的长文本如果需要,它换行到下一行。我的 tableview 行高设置为 65。

我已将行数设置为 0,并将换行符设置为换行。

我什至尝试在我的 CustomTableViewCell 中以编程方式设置参数 class:

    self.materialLabel?.numberOfLines = 0
    self.materialLabel.sizeToFit()
    self.materialLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping

我在我的标签上尝试了很多设置约束的组合,但它要么不起作用,要么影响单元格中的所有对象,图像和图像标签不同步。无法设置对齐约束。

使用 Xcode 6.3.2、Swift 1.2 和 iOS 8

感谢进阶!

您可以使用动态单元格高度(或自动调整单元格大小)。

基本上,您创建 topleadingbottomtrailing 标签相对于单元格 contentView 的约束。

然后设置

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = someValue

http://www.raywenderlich.com/87975/dynamic-table-view-cell-height-ios-8-swift

有很多方法可以为 table 单元格设置动态高度。

如果您不使用自动布局,则需要以编程方式计算 table 大小,并 return 使用 table 视图委托方法。

如果你使用自动版式,你的生活会很轻松。向单元格添加约束,即向图像添加边框、宽度和高度约束。仅向图像添加 4 个边框约束(不添加高度约束)。这可能不是确切的限制,但这会给你一个想法。在 viewDidload

中添加以下代码
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = someValue

这应该有效。

原来我的标签宽度太宽了。在对标签设置约束之前,我必须锚定图像视图和图像标签并设置宽度和高度。