Я пытаюсь разместить какой-либо текст в метке фиксированной ширины (на самом деле ширина зависит от размера экрана, но не может измениться в приложении), и ожидаю, что UIKit будет хитро использовать комбинацию изменения размера шрифта и переноса слов чтобы получить правильный результат. Однако, похоже, это не работает. Учитывая UILabel со следующими ограничениями:
- соотношение сторон = 1: 1
- label.width = 0.7 * parentView.width (все другие соответствующие ограничения установлены, ошибок или предупреждений в IB нет)
и следующий код:
label.font = label.font.withSize(100)
label.adjustsFontSizeToFitWidth = true
label.lineBreakMode = .byClipping
label.numberOfLines = 0
label.text = "Shooter team"
Я бы надеялся, что он изменит размер текста и поместит его в две строки: «Стрелок» и «команда» (или, поскольку текст может быть чем угодно, правильно разделите его на слова). Тем не менее, когда я устанавливаю label.lineBreakMode
на .byWordWrapping
, он не изменяет размер текста вообще, поэтому отображается только одна большая буква (примечание: для изменения размера я использую большой размер шрифта, потому что не могу заранее знать, насколько большим будет текст, так как размер зависит от размера экрана). Любое другое значение для .lineBreakMode
приводит к изменению размера текста, но разделяется на «Shoote» и «r team», что выглядит глупо. Изменение autoshrink
например Minimum font size = 8
, похоже, не имеет никакого эффекта. Смотрите скриншот ниже.
Любое предложение о том, как я могу получить правильное разбиение / изменение размера? Возможно, я использовал неправильные термины для своих поисков, но не нашел ответа: - |
(Примечание: возникнет другой вопрос о том, как я могу сделать границу охватывающего вида красивым кругом до отображения вида: - |)