2013-10-09 13 views
5

Ho una vista e ho creato alcuni 8 pulsanti a livello di programmazione in questo. Il colore del titolo dei pulsanti è di colore bianco. Voglio cambiare il colore del titolo del pulsante in verde quando viene cliccato. E se faccio clic su un altro pulsante, il colore del titolo del pulsante precedentemente cliccato dovrebbe diventare bianco e il colore del titolo del pulsante corrente dovrebbe diventare verde.Come cambiare il colore del titolo di UIButton quando si fa clic?

Come fare?

+0

Questo è reale non una domanda doppia Grazie per la risposta corretta @Bordz –

risposta

11

inizializzare tutti i pulsanti come questo

[mybutton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
[mybutton setTitleColor:[UIColor greenColor] forState:UIControlStateSelected]; 
[mybutton addTarget:self action:@selector(onclick:) forControlEvents:UIControlEventTouchUpInside]; 

quindi cambiare lo stato selezionato di voi pulsante quando si fa clic

-(void)onclick:(id)sender{ 
UIButton *button = (UIButton *)sender; 
button.selected = !button.selected; 
} 
0

Creare IBAction per tutti i pulsanti, creare una proprietà @property (strong, nonatomic) UIButton *currentButton. Nell'azione effettuare le seguenti operazioni:

-(IBAction)buttonClicked:(id)sender 
{ 
    UIButton *buttonSender = (UIButton *)sender; 

    [self.currentButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
    self.currentButton = buttonSender; 
    [self.currentButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; 
} 
0

Set stato di controllo di pulsanti:

[btnOk setTitleColor:[UIColor yellowColor] forState:UIControlStateSelected]; 
[btnOk setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted]; 
[btnOk setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal]; 
Problemi correlati