iPhone Uibutton avec une fonctionnalité Uiswitch
Question
Existe-t-il un moyen d'implémenter Uiswitch avec des graphiques personnalisés pour les états de commutation? Ou comme alternative dans l'autre sens, un uibutton avec une fonctionnalité Uiswitch?
La solution
UIButton
Prend déjà en charge une fonctionnalité "Switch".
Définissez simplement une image différente dans Interface Builder pour la "configuration d'état sélectionnée" et utilisez le selected
propriété de UIButton
pour basculer son état.
Autres conseils
Définissez l'image pour afficher à l'état sélectionné:
[button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];
puis sur le sélecteur de retouche à l'intérieur, définissez:
button.selected = YES;
Si vous souhaitez que cela annule la sélection d'un autre bouton, définissez:
otherButton.selected = NO;
Pour construire sur ce que PGB et Nurne ont dit ci-dessus, après avoir défini vos états et attaché un sélecteur (méthode de l'événement), vous voudriez mettre ce code dans ce sélecteur.
- (IBAction)cost:(id)sender
{
//Toggle current state and save
self.buttonTest.selected = !self.buttonTest.selected;
/**
The rest of your method goes here.
*/
}
Pour l'inclinaison programmatique:
-(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];
}