iOS:具有多行的UITableView单元格?

有多行的UITableView单元格的最佳方法是什么? 比如说5 ..或者6?

而不是textLabel和la detailTextLabel? 我应该创build一个自定义样式吗? 或自定义视图?

任何教程/例子都被广泛接受。

谢谢

你可以在UITableViewCell中使用现有的UILabel视图。 秘密是要做到以下几点:

cell.textLabel.numberOfLines = 0; cell.textLabel.lineBreakMode = UILineBreakModeWordWrap; 

默认情况下,UILabel只允许1行文本。 将numberOfLines设置为0基本上消除了对显示行数的限制。 这允许你有多行文字。

将lineBreakMode设置为Word Wrap可以指示将长行文本换行标记到下一行。 如果你不想要这个,你可以跳过这一行。

您也可能需要根据需要调整表视图单元格的高度,以便为添加的多行文本留出更多空间。

对于iOS 6.0和更高版本,请使用NSLineBreakByWordWrapping而不是已弃用的UILineBreakModeWordWrap

对于Swift 3.x:

 func allowMultipleLines(tableViewCell: UITableViewCell) { tableViewCell.textLabel?.numberOfLines = 0 tableViewCell.textLabel?.lineBreakMode = .byWordWrapping } 

有一种方法只是使用故事板完成这一点。 首先,select单元格并转到右侧面板上的属性部分。 第一个选项应该是“风格”。 将其从自定义更改为基本。 现在,在您的单元格中,您应该看到标题为“标题”的文字。 双击它,在右侧面板中,您应该可以设置行数。

我发现这对我在Xcode版本8.0(8A218a)

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) UITableViewCell { let cell = UITableViewCell() //MARK: word wrapping in cell cell.textLabel?.text = self.choices[(indexPath as NSIndexPath).row] cell.textLabel?.numberOfLines=0 // line wrap cell.textLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping return cell }