Как сделать многострочную UILabel в ios?

#objective-c #ios #uilabel #multiline

#objective-c #iOS #uilabel #многострочный

Вопрос:

Я динамически заполняю заголовок (UILabel). Иногда это слишком длинно, и IOS сжимает шрифт, чтобы он соответствовал ширине. Есть ли способ сделать многострочную с использованием того же размера шрифта?

Ответ №1:

Установите adjustsFontSizeToFitWidth значение NO и numberOfLines значение 0.

Документы numberOfLines

Это свойство определяет максимальное количество строк, которые нужно использовать, чтобы текст метки помещался в ограничивающий его прямоугольник. Значение по умолчанию для этого свойства равно 1. Чтобы удалить любое максимальное ограничение и использовать столько строк, сколько необходимо, установите значение этого свойства равным 0.

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

При изменении размера получателя с помощью метода sizeToFit изменение размера учитывает значение, сохраненное в этом свойстве. Например, если для этого свойства установлено значение 3, метод sizeToFit изменяет размер приемника так, чтобы он был достаточно большим для отображения трех строк текста.

Вы можете дополнительно указать lineBreakMode , если значение по умолчанию UILineBreakModeWordWrap не подходит для того, что вы хотите.

Комментарии:

1. Стоит отметить, что UILineBreakModeWordWrap это устарело с iOS 6.0, заменено на NSLineBreakByWordWrapping

2. Нет необходимости устанавливать adjustsFontSizeToFitWidth значение NO — по умолчанию NO

Ответ №2:

Используйте UILabel свойства, как показано ниже :

 textLabel.lineBreakMode = NSLineBreakByWordWrapping;  
textLabel.numberOfLines = 0;
  

Ответ №3:

Да, вы устанавливаете значение numberOfLines 0 и значение .lineBreakMode UILineBreakModeWordWrap в коде или эквиваленты, если ваша метка определена в IB.

Ответ №4:

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

Комментарии:

1. Установите для автоматической усушки минимальный размер шрифта. и проверьте интервал между буквами.

2. Это важно! Перенос слов этого не делает, вы должны установить режим усечения