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

时间:2011-05-11 12:43:59

标签: ios ipad

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

而不是textLabel和la detailTextLabel?我应该创建自定义样式吗?还是自定义视图?

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

感谢

5 个答案:

答案 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。这一切都有所不同。现在我可以显示尽可能多的行。