2010-04-28 19 views
28

Mam długi ciąg tekstowy (w tym \n znakami nowej linii), który dodaję do wyświetlania UILabel. Model UILabel jest dynamicznie skonfigurowany, aby zapewnić wystarczającą ilość miejsca na tekst.Tekst UILabel nie zawiera zawijania wyrazów

Mój kod wygląda następująco:

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; 

Moim problemem jest to, że tekst nie zawijać, ale obcina po pierwszym wierszu. Nowe wiersze \n są ignorowane.

Odpowiedz

85

Po prostu znalazłem problem, mój numberOfLines był wciąż na 1. Po ustawieniu go na 0 działa dobrze.

+5

strzelać .. mnie bić się to ... Miałem ten dokładny problem i wiedziałem, kiedy przeczytałem twój tytuł, że mam twoje rozwiązanie. –

+0

Tutaj, przekaż. :) – mtmurdock

+0

Tutaj masz ciasteczko. : O – Sandy

1

Może to być użyteczne - ponieważ niektóre linie są przestarzałe teraz

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

i oczywiście - lBody.numberOfLines powinna być większa niż 1 (1 to wartość domyślna)

Powiązane problemy