Apple iPhone: creare un custom toggle button
venerdì 4 dicembre, 2009Gli stati UIControlStateSelected o UIControlStateHighlighted non funzionano quando un UIButton è impostato in modalità UIButtonTypeCustom! O meglio, non funzionano come dovrebbero (perchè riservati agli altri tipi di bottone), ad esempio per creare un bottone a due stati: toggle appunto. Se abbiamo creato due immagini (stato1.png e stato2.png) per il nostro bottone, possiamo procedere in questo modo:
-
// Nell'header file creiamo una variabile globale che usaremo per
-
// controllare il toggle state
-
BOOL toggleFlag;
Ora creiamo il nostro bottone:
-
// Creaiamo un bottone e lo poniamo inizialmente nello stato "stato1.png"
-
// Modificate initWithFrame:(CGRect){100,100,50,50} con la posizione e
-
// dimensioni della vostra immmagine
-
toggleFlag = YES;
-
UIButton *toggleButton = [[UIButton buttonWithType:UIButtonTypeCustom] initWithFrame:(CGRect){100,100,50,50}];
-
[toggleButton setTitle:@"" forState:UIControlStateNormal];
-
[toggleButton setBackgroundImage:[UIImage imageNamed:@"stato1.png"] forState:UIControlStateNormal];
-
[toggleButton addTarget:self action:@selector(onToggle:) forControlEvents:UIControlEventTouchUpInside];
-
[self.view addSubview:toggleButton];
Quando si clicca sul bottone verrà inviato un messaggio gestito da onToggle:
-
- (void)onToggle:(id)sender {
-
// Recupero puntatore al UIButton
-
UIButton *buttonClicked = (UIButton *)sender;
-
// Eseguo il toogle
-
toggleFlag = !toggleFlag;
-
[buttonClicked setBackgroundImage:[UIImage imageNamed:(toggleFlag) ? @"stato1.png" : @"stato2.png"] forState:UIControlStateNormal];
-
}










5

Non ci sono commenti per questo Post
Lascia un commento