iPhone Uibutton mit Uiswitch -Funktionalität
Frage
Gibt es eine Möglichkeit, UISwitch mit benutzerdefinierten Grafiken für die Switch-States zu implementieren? Oder als Alternative umgekehrt, ein Uibutton mit Uiswitch -Funktionalität?
Lösung
UIButton
Unterstützt bereits eine "Switch" -Funktionalität.
Legen Sie einfach ein anderes Bild im Schnittstellenbuilder für die "ausgewählte Statuskonfiguration" fest und verwenden Sie die selected
Eigentum von UIButton
seinen Zustand umschalten.
Andere Tipps
Stellen Sie das Bild so ein, dass sie in ausgewählten Status angezeigt werden:
[button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];
Und dann beim Ausbessern im Selektor einstellen:
button.selected = YES;
Wenn Sie möchten, dass dies die Auswahl einer anderen Schaltfläche absagt, stellen Sie fest:
otherButton.selected = NO;
Um auf dem aufzubauen, was PGB und Nurne oben gesagt haben, möchten Sie diesen Code in diesem Selektor einfügen, nachdem Sie Ihre Zustände gesetzt haben und einen Selektor (Ereignismethode) anhängen möchten.
- (IBAction)cost:(id)sender
{
//Toggle current state and save
self.buttonTest.selected = !self.buttonTest.selected;
/**
The rest of your method goes here.
*/
}
Für programmatisch geneigte:
-(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];
}