2011-10-18 7 views
8

Estoy creando una aplicación de iPhone en la que tengo un botón personalizado. He configurado el título de los botones creando una etiqueta y agregándola como subvista. ahora cuando el botón está resaltado, quiero cambiar el color del texto de las etiquetas.Cómo establecer los botones de color de etiqueta de texto para estado UIControlStateHighlighted

aquí es mi código,

UIButton *button1= [UIButton buttonWithType:UIButtonTypeCustom]; 
    [button1 setFrame:CGRectMake(68,162, 635, 101)];  
    [button1 setImage:[UIImage imageNamed:@"startwithouttext.png"] forState:UIControlStateNormal]; 
    [button1 setImage:[UIImage imageNamed:@"startactivewithouttext.png"] forState:UIControlStateHighlighted]; 

    UILabel *buttonLabel = [[UILabel alloc] initWithFrame:CGRectMake(button1.bounds.origin.x+50, button1.bounds.origin.y+20, button1.bounds.size.width-100, button1.bounds.size.height-40)]; 

    [buttonLabel setFont:[UIFont fontWithName:@"Helvetica" size:28]]; 
    buttonLabel.backgroundColor=[UIColor clearColor]; 
    buttonLabel.textColor=[UIColor colorWithRed:83.0/255.0 green:83.0/255.0 blue:83.0/255.0 alpha:1.0]; 
    buttonLabel.highlightedTextColor=[UIColor whiteColor]; 
    buttonLabel.text = @"Long text string"; 
    [button1 addSubview:buttonLabel]; 
    [button1 bringSubviewToFront:buttonLabel]; 
    [button1 setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; 
    [button1 setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter]; 
    [button1 addTarget:self action:@selector(button1clicked:) forControlEvents: 

[mainView button1]; 

cualquier organismo puede ayudar a que cambie el color del texto cuando se resalta el botón?

+0

se button1clicked llama? – Maulik

+0

sí button1clicked se llama – krishan

+0

puedo cambiar el color del texto cuando se llama al método button1clicked, pero lo que quiero es cambiar el color del texto cuando se aumenta el botón – krishan

Respuesta

10

puede agregar objetivo para UIControlStateHighlighted estado de UIButton como

[button1 addTarget:self action:@selector(buttonHighlighted:) forControlEvents:UIControlStateHighlighted]; 

y en buttonHighlighted método que se puede cambiar el color del texto de la etiqueta

- (void) buttonHighlighted:(id)sender 
{ 
    //code here 
} 

espero que le da una idea.

+0

ya, está bien ... gracias por su ayuda – krishan

+0

Gracias por su ayuda. – krishan

+0

¿por qué no usa la etiqueta de texto de UIButton? ¿por qué estás agregando otra etiqueta en el botón? – Maulik

23

encontrado la respuesta en una pregunta diferente en StackOverflow: UIButton color issues

[button1 setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted]; 

Ésta es si se puede trabajar sin crear una etiqueta y añadiendo como subvista como se menciona anteriormente.

+0

Esto solo funcionará si establece ambos colores en un estado diferente, o el color del texto de cada estado se volverá rojo. – Raptor

1

Para selectedColor

[yourButton setTitleColor:[UIColor purpleColor] forState:UIControlStateSelected]; 

Para HighlightedColor

[yourButton setTitleColor:[UIColor orangeColor] forState:UIControlStateHighlighted]; 
Cuestiones relacionadas