Многострочная метка iOS в Интерфейсном конструкторе - PullRequest
120 голосов
/ 02 июля 2011

Как сделать многострочное UILabel в конструкторе интерфейсов для iOS?Я попробовал UITextView, но он не совсем соответствовал моим потребностям.

Как добавить многострочный (текст) в метку?

Ответы [ 10 ]

165 голосов
/ 02 июля 2011

Вы можете использовать numberOfLines свойство, которое определяет максимум количество строк, которое может иметь метка.По умолчанию это 1.Установка 0 означает, что метка будет иметь неограниченное количество строк .

. Вы можете сделать это в коде:

textLabel.numberOfLines = 5 // for example

Или в Интерфейсном Разработчике:

107 голосов
/ 09 февраля 2014

Hit Control + Введите , чтобы добавить строку в UILabel в Interface Builder / Storyboard.

47 голосов
/ 18 апреля 2012

Спасибо AppleVijay!

Также для вызова sizeToFit, вот так:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];

Высота будет автоматически рассчитана.

11 голосов
/ 02 июля 2011

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

или используйте с кодом, подобным этому

Я нашел решение.

Нужно просто добавить следующий код:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
4 голосов
/ 04 марта 2017

Установите число строк ноль для динамической текстовой информации, это будет полезно, когда ваш текст меняется.

Программно (Swift 3)

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

enter image description here

Примечание. Не обязательно устанавливать Minimum Font Scale, но приятно иметь минимальный масштабный коэффициент для размещения текста в рамке надписи.

1 голос
/ 13 апреля 2018

Количество строк видно в IB с простым UILabels установить поле линии как 0. Это создаст несколько строк в соответствии с предоставленным пространством для метки.

1 голос
/ 08 октября 2014

В iOS7 (Xcode5) вы должны установить строки UILabel на 0 для неограниченного множественного ввода в раскадровке.
Самое важное, чтобы height of the UILabel мог содержать строки ввода, которые вы собираетесь установить.

0 голосов
/ 22 марта 2018

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

0 голосов
/ 07 апреля 2016

Для X-кода 7.2

  1. - Выбрать UILabel

  2. - Инспектор атрибутов

  3. - Текст - Выбрать атрибут

После этого вы можете увидеть еще один атрибут, который вы можете добавить в свой ярлык, в котором вы также можете найти номер Линии ,Которые делают ваш лейбл многострочным .

X-Code Image for a multiline UILabel

0 голосов
/ 08 октября 2014
textLabel.lineBreakMode = UILineBreakModeWordWrap;

textLabel.numberOfLines = 0;

CGSize size =  [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"]  sizeWithFont:[UIFont systemFontOfSize:14.0]  constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
                                                                     lineBreakMode:NSLineBreakByTruncatingTail];

textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};
...