/ / Definir imagem do botão quando selecionada e desmarcada - ios, uibutton

Definindo a imagem do botão quando selecionada e desmarcada - ios, uibutton

Estou apenas tentando definir a imagem do botão para alternar para imagens diferentes no meu IBAction:

if ([sender isSelected]) {
//1
UIImage *unselectedImage = [[UIImage alloc]initWithContentsOfFile:@"icon_checkbox_up"];
[sender setImage:unselectedImage forState:UIControlStateSelected];
[sender setSelected:NO];
}
else {
//2
UIImage *unselectedImage = [[UIImage alloc]initWithContentsOfFile:@"icon_checkbox_down"];
[sender setImage:unselectedImage forState:UIControlStateNormal];
[sender setSelected:YES];
}

Quando clico no botão, a imagem mudade acordo (no comentário 2), depois de pressionar o botão novamente, a imagem desaparece. Não sei por que. Tentei UIControlStateSelected e UIControlStateNormal. Estou esquecendo de algo?

Respostas:

2 para resposta № 1

Se o nome do seu arquivo não estiver errado, você pode tentar dessa maneira. Espero que ajude!

[buttn addTarget:self action:@selector(Selected) forControlEvents:UIControlEventTouchDown];
[buttn addTarget:self action:@selector(Unselected) forControlEvents:UIControlEventTouchUpInside];
[buttn addTarget:self action:@selector(Unselected) forControlEvents:UIControlEventTouchUpOutside];

-(void)Selected
{
UIImage *unselectedImage = [[UIImage alloc]initWithContentsOfFile:@"icon_checkbox_up"];
[buttn setImage:unselectedImage forState:UIControlStateSelected];
[buttn setSelected:NO];
}

-(void)Unselected
{
UIImage *unselectedImage = [[UIImage alloc]initWithContentsOfFile:@"icon_checkbox_down"];
[buttn setImage:unselectedImage forState:UIControlStateNormal];
[buttn setSelected:YES];
}

0 para resposta № 2

O código foi alterado para:

if ([sender isSelected]) {
[sender setSelected:NO];
}
else {
[sender setSelected:YES];
}

e defina as imagens nos arquivos XIB para cada UIControlState.