С концепцией дизайна autolayout, не устанавливает ограничения по высоте для UILabel и не устанавливает no.строк как 0 .
Автоматическое расположение автоматически определяет динамическую высоту метки в соответствии с текстом метки.Если метка имеет однострочный текст, она будет занимать только одну строку.И если метка имеет более одной строки, она изменит размер метки в соответствии с размером текста и количеством строк, необходимых для отображения текста.
Установите нулевое количество строк для динамической текстовой информации, это будет полезно, когда ваш текстменяются.
Программно (Swift 4)
var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame
Использование Inetrface Builder
Примечание. Не обязательно устанавливать Minimum Font Scale
, но желательно иметь минимальный масштабный коэффициент для размещения текста в рамке метки.
Ссылка: UILabel - numberOfLines