2010-04-28 3 views
28

J'ai une longue chaîne de caractères (y compris \n caractères de nouvelle ligne) que je nourris dans un UILabel pour l'affichage. Le UILabel est configuré dynamiquement pour fournir suffisamment d'espace pour le texte.Le texte UILabel ne contient pas de mot-clé

Mon code ressemble à ceci:

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; 

Mon problème est que le texte ne revient pas, mais tronque après la première ligne. Les nouvelles lignes \n sont ignorées.

Répondre

85

Juste trouvé le problème, mon numberOfLines était toujours à 1. Après l'avoir mis à 0 cela fonctionne très bien.

+5

Pousse .. tu me bats à J'ai eu ce problème et je savais quand j'ai lu votre titre que j'avais votre solution. –

+0

Ici, avoir un upvote. :) – mtmurdock

+0

Ici, avoir un cookie. : O – Sandy

1

Peut être qu'il sera utile - car certaines lignes sont déconseillés maintenant

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

et bien sûr - lBody.numberOfLines devraient être plus de 1 (1 est la valeur par défaut)

Questions connexes