iPhone UIButton con funzionalità UISwitch
Domanda
C'è sia un modo per implementare UISwitch con grafica personalizzata per lo switch-stato? O in alternativa il contrario, un UIButton con funzionalità UISwitch?
Soluzione
UIButton
supporta già una funzionalità di "switch".
Situato a soli un'immagine diversa in Interface Builder per la "Configurazione Stato Selected", e utilizzare la proprietà selected
di UIButton
per cambiarne lo stato.
Altri suggerimenti
impostare l'immagine per mostrare sullo stato selezionato:
[button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];
e poi sul tocco dentro di selezione, impostare:
button.selected = YES;
se si desidera che questo per annullare la selezione di un altro pulsante, impostare:
otherButton.selected = NO;
Per costruire su ciò che PGB e nurne detto sopra, dopo aver impostato i vostri stati e allegare un selettore (metodo di evento) che si vorrebbe inserire questo codice in quel selettore.
- (IBAction)cost:(id)sender
{
//Toggle current state and save
self.buttonTest.selected = !self.buttonTest.selected;
/**
The rest of your method goes here.
*/
}
Per programmazione inclinata:
-(void) addToggleButton {
CGRect aframe = CGRectMake(0,0,100,100);
UIImage *selectedImage = [UIImage imageNamed:@"selected"];
UIImage *unselectedImage = [UIImage imageNamed:@"unselected"];
self.toggleUIButton = [[UIButton alloc] initWithFrame:aframe];
[self.toggleUIButton setImage:unselectedImage forState:UIControlStateNormal];
[self.toggleUIButton setImage:selectedImage forState:UIControlStateSelected];
[self.toggleUIButton addTarget:self
action:@selector(clickToggle:)
forControlEvents:UIControlEventTouchUpInside];
[self addSubview:self.toggleUIButton];
}
-(void) clickToggle:(id) sender {
BOOL isSelected = [(UIButton *)sender isSelected];
[(UIButton *) sender setSelected:!isSelected];
}