Как добавить разрыв строки для UILabel?

Позвольте видят, что у меня есть строка, похожи на это:

NSString *longStr = @"AAAAA\nBBBBB\nCCCCC";  

Как я делаю его так, чтобы UILabel отобразили сообщение как это

AAAAA
BBBBB
CCCCC

Я не думаю \n распознан UILabel, так есть ли что-нибудь, что я могу вставить NSString так, чтобы UILabel знал, что должен создать разрыв строки там?

253
задан ROMANIA_engineer 1 November 2017 в 12:12
поделиться

3 ответа

Используйте \ n , как вы используете в своей строке.

Установите для numberOfLines значение 0, чтобы разрешить любое количество строк.

label.numberOfLines = 0;

Обновите рамку метки, чтобы она соответствовала размеру текста, используя sizeWithFont: . Если вы этого не сделаете, ваш текст будет вертикально по центру или обрезан.

UILabel *label; // set frame to largest size you want
...
CGSize labelSize = [label.text sizeWithFont:label.font
                          constrainedToSize:label.frame.size
                              lineBreakMode:label.lineBreakMode];
label.frame = CGRectMake(
    label.frame.origin.x, label.frame.origin.y, 
    label.frame.size.width, labelSize.height);

Обновление: замена устаревшего

sizeWithFont:constrainedToSize:lineBreakMode:

справочника, Замена устаревшего sizeWithFont: в iOS 7?

CGSize labelSize = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}];

label.frame = CGRectMake(
    label.frame.origin.x, label.frame.origin.y, 
    label.frame.size.width, labelSize.height);
324
ответ дан 23 November 2019 в 02:49
поделиться

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

25
ответ дан 23 November 2019 в 02:49
поделиться

Важно отметить, что это \n (обратная косая черта), а не /n.

22
ответ дан 23 November 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: