Pergunta

Existe uma maneira de implementar o Uiswitch com gráficos personalizados para os estados de switch? Ou como uma alternativa de outra maneira, um UIBUItton com funcionalidade Uiswitch?

Foi útil?

Solução

UIButton Já suporta uma funcionalidade "Switch".

Basta definir uma imagem diferente no construtor de interface para a "configuração do estado selecionada" e usar o selected propriedade de UIButton para alternar seu estado.

Outras dicas

Defina a imagem a ser exibida no estado selecionado:

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

e depois retoque dentro do seletor, defina:

button.selected = YES;

Se você deseja que isso cancele a seleção de outro botão, defina:

otherButton.selected = NO;

Para desenvolver o que o PGB e o Nurne disseram acima, depois de definir seus estados e anexar um seletor (método de evento), você deseja colocar esse código nesse seletor.

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

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

Para inclinado programaticamente:

-(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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top