Позвольте видят, что у меня есть строка, похожи на это:
NSString *longStr = @"AAAAA\nBBBBB\nCCCCC";
Как я делаю его так, чтобы UILabel отобразили сообщение как это
AAAAA
BBBBB
CCCCC
Я не думаю \n
распознан UILabel, так есть ли что-нибудь, что я могу вставить NSString так, чтобы UILabel знал, что должен создать разрыв строки там?
Используйте \ 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);
Вы должны установить свойство numberOfLines
на UILabel
. По умолчанию 1, если установить 0, то все ограничения будут удалены.
Важно отметить, что это \n
(обратная косая черта), а не /n
.