У меня есть UILabel
, что мне нужно иметь определенный размер текста и ширину кадра (в соответствии с шириной экрана).Я хочу иметь возможность установить высоту метки на минимальную высоту, которая будет соответствовать всему тексту метки, не обрезая ее.
Я пробовал следующее:
let label = UILabel()
label.text = longText
label.numberOfLines = 0
label.sizeToFit()
Ноэто не будет работать, если longText
будет похоже на "This string is really long, longer than the screen width"
, так как sizeToFit
помещает всю строку в одну строку, а текст обрезается с помощью ...
, когда он достигает ширины экрана.
Iзатем попытался установить ширину метки в соответствии с шириной экрана после вызова sizeToFit
.Это позволяет переносить строку, но не регулирует высоту метки, поэтому строка по-прежнему обрезается после первой строки.
Кроме того, настройка label.adjustsFontSizeToFitWidth = true
не будет работать, поскольку мне нужна метка дляконкретный размер шрифта.
Мне бы хотелось иметь какую-то функцию вроде label.minimumHeightForWidth:
, где я могу передать UIScreen.main.bounds.width
в качестве параметра ширины и получить высоту, которая будет соответствовать тексту надписи на всехлинии по мере необходимости с заданным параметром ширины.Можно ли сделать что-то подобное?