UITableView单元格有多行的最佳方法是什么?我们说5 ..或6?
而不是textLabel和la detailTextLabel?我应该创建自定义样式吗?还是自定义视图?
任何教程/示例都被广泛接受。
感谢
答案 0 :(得分:118)
您可以在UITableViewCell中使用现有的UILabel视图。秘诀是做以下事情:
cell.textLabel.numberOfLines = 0;
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
默认情况下,UILabel只允许1行文本。将numberOfLines设置为0基本上可以消除对显示的行数的任何限制。这允许您有多行文本。
lineBreakMode设置为Word Wrap告诉它将长行文本换行到标签的下一行。如果您不想这样,可以跳过该行。
您可能还需要根据需要调整表格视图单元格的高度,以便为您添加的多行文本腾出更多空间。
对于iOS 6.0及更高版本,请使用NSLineBreakByWordWrapping
而不是UILineBreakModeWordWrap
,这已被弃用。
答案 1 :(得分:25)
自Swift 3开始:
B
答案 2 :(得分:0)
有一种方法可以使用故事板来实现这一目标。首先,选择单元格并转到右侧面板的属性部分。第一个选项应该是' Style'。将其从自定义更改为基本。现在,在您的单元格中,您应该会看到标题为' Title'的文字。双击它,在右侧面板中,您应该能够设置行数。
答案 3 :(得分:0)
我发现这在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
}
答案 4 :(得分:0)
cell.textLabel.numberOfLines = 0;
与
一起tableView.rowHeight = UITableViewAutomaticDimension
如果行数有限(2-3行),是否可以 ,但只能 。
我必须做的是将单元格字段嵌入StackView
。这一切都有所不同。现在我可以显示尽可能多的行。