Как создать многострочный UILabel
в построителе интерфейса для iOS? Я попробовал UITextView
, но это не совсем соответствовало моим потребностям.
Как добавить многострочный (текст) в метку?
Как создать многострочный UILabel
в построителе интерфейса для iOS? Я попробовал UITextView
, но это не совсем соответствовало моим потребностям.
Как добавить многострочный (текст) в метку?
Вы можете использовать свойство numberOfLines
которое определяет максимальное количество строк, которое может иметь метка. По умолчанию это 1
. Установка его в 0
означает, что метка будет иметь неограниченное количество строк.
Вы можете сделать это в коде:
textLabel.numberOfLines = 5 // for example
Или в Интерфейсном Разработчике:
Нажмите Control + Enter, чтобы добавить строку в UILabel в построителе интерфейса/раскадровке.
Спасибо AppleVijay!
Также для вызова sizeToFit, например:
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
Высота будет автоматически вычислена.
задайте ширину метки как и нужно маленькую, затем используйте IB, чтобы установить разрывы строк на перенос слов
или используйте с этим кодом
Я нашел решение.
Нужно просто добавить следующий код:
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
Установите число строк в ноль для динамической текстовой информации, это будет полезно, когда ваш текст меняется.
Программно (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
Примечание. Не обязательно устанавливать Minimum Font Scale
, но приятно иметь минимальный масштабный коэффициент для размещения текста в рамке надписи.
В iOS7 (Xcode5) вы добавили строки UILabel в 0
для неограниченного количества входных данных в раскадровке.
Самое главное - установить height of the UILabel
, чтобы удерживать строки ввода, которые вы собираетесь установить.
Количество строк отображается в IB с помощью поля Plain UILabels, установленного в 0. Это создаст несколько строк в соответствии с предоставленным пространством для метки.
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};
Если вы установите свойство numberOfLines равным 0, метка автоматически подстраивается под требуемое количество строк данного текста.
- Выберите UILabel
- Инспектор атрибутов
- Текст - выберите атрибут
После этого вы можете увидеть еще один атрибут, который вы можете добавить в ярлык, в котором вы также можете найти число Линей. Что делает ваш ярлык многострочным.