2010-04-28 19 views
28

Tengo una cadena de texto largo (que incluye \n caracteres de nueva línea) que introduzco en un UILabel para su visualización. El UILabel está configurado dinámicamente para proporcionar suficiente espacio para el texto.El texto de UILabel no ajusta la palabra

Mi código es el siguiente:

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; 

Mi problema es que el texto no se ajusta, pero trunca después de la primera línea. Las líneas nuevas \n se ignoran.

Respuesta

85

Acabo de encontrar el problema, mi numberOfLines todavía estaba en 1. Después de configurarlo en 0, funciona bien.

+5

Shoot .. me ganas de era ... tenía ese problema exacto y sabía cuando leí su título que tenía su solución. –

+0

Aquí, tienen un voto favorable. :) – mtmurdock

+0

Aquí, tiene una cookie. : O – Sandy

1

puede ser que sea útil - ya que algunas líneas están en desuso ahora

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

y por supuesto - lBody.numberOfLines deben contener más de 1 (1 es el valor predeterminado)

Cuestiones relacionadas