2011-01-14 18 views
10

Hola tengo problema para definir varias líneas a mi botón que se declara así:varias líneas en UIButton

button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
button.titleLabel.font   = [UIFont systemFontOfSize: 12]; 
button.titleLabel.lineBreakMode = UILineBreakModeWordWrap; 
button.titleLabel.numberOfLines = 0; 
button.titleLabel.shadowOffset = CGSizeMake (1.0, 0.0); 

[button addTarget:self 
      action:@selector(myButtonClick) 
forControlEvents:UIControlEventTouchDown]; 

button.frame = CGRectMake(0.0, 100.0, 317.0, 100.0); 
[button setTitle:string forState:UIControlStateNormal]; 
button.titleLabel.font   = [UIFont systemFontOfSize: 12]; 
button.titleLabel.text = @"ahoj"; 

NSMutableString *ObratString = [[NSMutableString alloc] initWithString:button.titleLabel.text]; 

[ObratString appendString:@"\n"]; 
[ObratString appendString:@"caw"]; 
[ObratString appendString:@"\n"]; 
[ObratString appendString:@"helllo"]; 
button.titleLabel.text = ObratString; 
[ObratString release]; 
[self.view addSubview:button]; 

Pero al final acabo de ver la primera línea. ¿Hay alguna forma de hacerlo funcionar?

+1

duplicado Posible de http://stackoverflow.com/questions/2265940/ breakline-in-uibutton-title – fresskoma

+0

Consulte otra pregunta y algunas respuestas sobre esto - [aquí] (http://stackoverflow.com/questions/604632/how-do-you-add-multi-line-text-to-a -uibutton) –

Respuesta

53

El UIButton muestra su texto con un contenido UILabel. El valor predeterminado para la etiqueta contenida es mostrar una sola línea de texto. Se puede acceder a esta etiqueta a través de la propiedad titleLabel, y se puede hacer todo lo que se pueda hacer con una etiqueta normal.

Por ejemplo lo que es multi-líneas quebradas por palabras:

myButton.titleLabel. numberOfLines = 0; // Dynamic number of lines 
myButton.titleLabel.lineBreakMode = UILineBreakModeWordWrap; 
+0

Sí, pero si puede ver que lo hice, está en mi código, pero simplemente no lo hará, tiene que ser – Csabi

+0

Excelente! gracias :) –

+10

UILineBreakModeWordWrap está en desuso. use NSLineBreakByWordWrapping en su lugar – yzucker

4

versión Swift para la respuesta verificado:

myButton.titleLabel?.numberOfLines = 0 
    myButton.titleLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping 
Cuestiones relacionadas