2010-04-28 3 views
28

У меня есть длинная текстовая строка (включая \n символов новой строки), которую я подаю в дисплей UILabel. 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 игнорируются.

ответ

85

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

+5

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

+0

Здесь есть верхняя часть. :) – mtmurdock

+0

Здесь есть куки. : O – Sandy

1

Может быть, это будет полезно - так как некоторые строки являются устаревшими в настоящее время

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

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