Текст UILabel не переносится по словам - PullRequest
28 голосов
/ 28 апреля 2010

У меня есть длинная текстовая строка (включая \n символы новой строки), которую я передаю в UILabel для отображения. UILabel устанавливается динамически, чтобы обеспечить достаточно места для текста.

Мой код выглядит так:

myText = [NSString stringWithFormat:@"%@some text: %@ \n \n %@", myText, moreText1, moreText2];
NSLog(@"%@", myText);
myLabelSize = [vLabelText sizeWithFont:[UIFont fontWithName:@"Helvetica" size:(15.0)] constrainedToSize:cMaxLabelSize lineBreakMode:UILineBreakModeWordWrap];

UILabel *lBody = [[UILabel alloc] initWithFrame:CGRectMake(cFromLeft, vFromTop, vLabelSize.width, vLabelSize.height)];
lBody.font = [UIFont fontWithName:@"Helvetica" size:(15.0)];
lBody.lineBreakMode = UILineBreakModeWordWrap;
lBody.textAlignment =  UITextAlignmentLeft;
lBody.backgroundColor = [UIColor cyanColor];
[myScrollView addSubview:lBody];
lBody.text = vLabelText;

Моя проблема в том, что текст не переносится, а обрезается после первой строки. Символы \n игнорируются.

Ответы [ 2 ]

85 голосов
/ 28 апреля 2010

Только что обнаружил проблему, мой numberOfLines все еще был на 1. После установки на 0 он работает нормально.

1 голос
/ 11 апреля 2014

Может быть, это будет полезно - некоторые строки устарели

lBody.lineBreakMode = NSLineBreakByCharWrapping;
lBody.textAlignment =  NSTextAlignmentLeft;

и, конечно, lBody.numberOfLines должно быть больше 1 (1 - значение по умолчанию)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...