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 № 1Se 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.