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

时间:2018-06-08 15:54:14

标签: swift tableview cell tablelayout swift4.1

我想在textlabel和detailtextlabel中为UITableview中的单元格管理长文本,因为如果textlabel有一个长文本,则详细的textlabel截断为" ..."反之亦然。

问题在于:

enter image description here

所以我想知道是否有办法管理textlabel和detailtextlabel之间的空间,因此没有截断并给它们更多的行。我尝试过:

...
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的宽度。

3 个答案:

答案 0 :(得分:0)

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

 yourTableView.rowHeight = UITableViewAutomaticDimension
 yourTableView.estimatedRowHeight = 80.0

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

答案 1 :(得分:0)

尝试按照以下方式自定义单元格:

First add a tableViewCell in storyboard and 2 labels

next try doing this finally select your custom CocoaTouch class

答案 2 :(得分:0)

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

但最好在故事板上添加两个自定义标签,并根据需要进行配置。这很容易。