Swift - настраиваемая ширина и высота ячейки для текстовой метки и detailTextLabel - PullRequest
0 голосов
/ 08 июня 2018

Я хочу управлять длинным текстом в textlabel и detailtextlabel для ячеек в UITableview, потому что, если 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, и я не могу изменить ширину для текстовой метки и detailtextlabel.

Ответы [ 3 ]

0 голосов
/ 08 июня 2018

Попробуйте настроить свою ячейку так:

First add a tableViewCell in storyboard and 2 labels

next try doing thisfinally select your custom CocoaTouch class

0 голосов
/ 08 июня 2018

Вы можете создать подкласс UITableViewCell и переопределить метод layoutSubviews().Вам нужно будет изменить макет textLabel и detailTextLabel там.Помните, что эти элементы лежат внутри contentView, а не в самой клетке.

Но лучше добавить две собственные метки на раскадровку и настроить их так, как вы хотите.Это проще.

0 голосов
/ 08 июня 2018

Попробуйте установить автоматическое измерение размера строк в табличных представлениях

 yourTableView.rowHeight = UITableViewAutomaticDimension
 yourTableView.estimatedRowHeight = 80.0

попробуйте установить для обоих строк текстовых меток либо в раскадровке, либо в коде значение 0, так как тогда у всех будет необходимое количество строк.

...