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?

War es hilfreich?

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];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top