Swift - textlabel 和 detailTextLabel 的自定义单元格宽度和高度

Swift - Custom cell width and height for textlabel and detailTextLabel

我想管理 UITableview 中单元格的 textlabel 和 detailtextlabel 中的长文本,因为如果 textlabel 有长文本,则 detailedtextlabel 会截断为“...”,反之亦然。

这是问题所在:

所以我想知道是否有办法管理 textlabel 和 detailtextlabel 之间的 space,这样就不会截断并给它们更多的行。我试过:

...
if tableData[indexPath.row].clave.count > 6 {
     cell?.detailTextLabel?.numberOfLines = 5
     cell?.textLabel?.numberOfLines = 5
} else {
     cell?.detailTextLabel?.numberOfLines = 1
}

cell?.textLabel?.text = nueva_cadena_string
cell?.detailTextLabel?.text = tableData[indexPath.row].clave
cell?.textLabel?.textColor = UIColor.brown
cell?.textLabel?.font = UIFont.boldSystemFont(ofSize: 15.0)
cell?.textLabel?.lineBreakMode = .byWordWrapping
return cell!;

但效果不是很好,似乎只给了它们 2 行,而不是 5 行,而且我无法更改 textlabel 和 detailtextlabel 的宽度。

尝试将 tableviews 行维度设置为自动

 yourTableView.rowHeight = UITableViewAutomaticDimension
 yourTableView.estimatedRowHeight = 80.0

尝试将故事板或代码中的两个文本标签的行数设置为 0,因为这样它们都将拥有所需的行数。

尝试像这样自定义您的单元格:

您可以继承 UITableViewCell 并覆盖 layoutSubviews() 方法。您需要在那里更改 textLabeldetailTextLabel 的布局。请记住,这些元素位于 contentView 内,而不是单元格本身。

但最好在 Storyboard 上添加两个自定义标签并根据需要进行配置。更简单。