Pregunta

¿Hay alguna manera de implementar UISWitch con gráficos personalizados para los estados de conmutación? ¿O como alternativa al revés, un Uibutton con funcionalidad de uiswitch?

¿Fue útil?

Solución

UIButton ya admite una funcionalidad de "conmutador".

Simplemente establezca una imagen diferente en Interface Builder para la "configuración de estado seleccionada" y use el selected propiedad de UIButton para alternar su estado.

Otros consejos

Establezca la imagen para mostrar en el estado seleccionado:

[button setImage:[UIImage imageNamed:@"btn_graphics"] forState:UIControlStateSelected];

Y luego en el retoque dentro del selector, establezca:

button.selected = YES;

Si desea que esto cancele la selección de otro botón, establezca:

otherButton.selected = NO;

Para desarrollar lo que PGB y Nurne dijeron anteriormente, después de establecer sus estados y adjuntar un selector (método de evento), desea poner este código en ese selector.

- (IBAction)cost:(id)sender 
{
    //Toggle current state and save
    self.buttonTest.selected = !self.buttonTest.selected;

    /**
     The rest of your method goes here.
     */
}

Para inclinar programáticamente:

-(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];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top