Ho un tipico requisito in cui ho bisogno di mantenere un pulsante nello stato evidenziato dopo averlo premuto. Devo eseguire un'attività che dovrebbe funzionare solo quando un pulsante è in uno stato evidenziato. In realtà sto impostando uno stato del pulsante su evidenziato in modo programmatico.Come impostare lo stato UIButton da evidenziare dopo averlo premuto
[sender setHighlighted:YES];
E una volta che il pulsante è in stato evidenziato ho bisogno di eseguire un'altra azione.
- (IBAction)changeState: (UIButton*)sender
{
if (sender.highlighted == YES)
{
[self performSomeAtion:sender];
}
}
Ma, con mio grande orrore, ogni volta che si preme un tasto qualsiasi, la condizione di cui sopra sta diventando vera e l'azione è in corso di esecuzione più volte. C'è un modo in cui posso mantenere lo stato di UIButton da evidenziare dopo averlo premuto?
EDIT - In realtà ho bisogno di effettuare 3 azioni diverse per 3 diversi stati del pulsante. Sto già facendo uso dello stato selezionato e dello stato normale. Ora, ho bisogno di usare lo stato evidenziato.
È possibile impostare una variabile BOOL che aggiornerà su TRUE una volta che l'azione è stata eseguita. –
ma ho bisogno di impostare il pulsante sullo stato evidenziato e deve rimanere nello stato evidenziato a meno che non lo cambi di nuovo .. –
Solo per iOS 7, dovresti prendere in considerazione l'impostazione renderMode su UIImageRenderingModeAlwaysTemplate e quindi usare il colore Tinta per rappresentare vari stati . vedi http://stackoverflow.com/questions/19802982/apply-tintcolor-to-uiimage –