2010-04-28 17 views
28

Ho una stringa di testo lunga (inclusi \n caratteri di nuova riga) che inserisco in un UILabel per la visualizzazione. Lo UILabel viene impostato dinamicamente per fornire spazio sufficiente per il testo.Il testo UILabel non contiene le parole

Il mio codice è simile al seguente:

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; 

Il mio problema è che il testo non va a capo, ma tronca dopo la prima riga. Le nuove righe \n vengono ignorate.

risposta

85

Appena trovato il problema, il mio numberOfLines era ancora a 1. Dopo averlo impostato su 0 funziona correttamente.

+5

Spara .. mi hai battuto sul ... ho avuto quel problema esatto e sapevo quando ho letto il tuo titolo che avevo la tua soluzione. –

+0

Qui, avere un upvote. :) – mtmurdock

+0

Qui, prendi un cookie. : O – Sandy

1

può essere sarà utile - dal momento che alcune linee sono deprecati ora

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

e naturalmente - lBody.numberOfLines dovrebbe essere superiore a 1 (1 è il valore predefinito)

Problemi correlati