您好,在我的应用程序中,我要求用户提供反馈。例如,这可能是对我们的服务器进行评级。他们通过点击两个按钮之一来做到这一点,好的或坏的。当他们选择一个选项时,按钮的图像会发生变化,这是我需要它做的。我遇到的问题是,如果他们选择好然后选择坏,则好按钮需要恢复到“未选择”选项。因为他们懒得被“选中”
我的按钮代码。
- (IBAction)gd:(id)sender {
UIButton *btn = (UIButton *)sender;
if ([sender isSelected]) {
[btn setBackgroundImage:[UIImage imageNamed:@"rd.png"] forState:UIControlStateNormal];
[sender setSelected:NO];
}
else{
[sender setBackgroundImage:[UIImage imageNamed:@"rd1.png"] forState:UIControlStateNormal];
[sender setSelected:YES];
}
}
- (IBAction)bd:(id)sender {
UIButton *btn1 = (UIButton *)sender;
if ([sender isSelected]) {
[btn1 setBackgroundImage:[UIImage imageNamed:@"rd.png"] forState:UIControlStateNormal];
[sender setSelected:NO];
}
else{
[sender setBackgroundImage:[UIImage imageNamed:@"rd1.png"] forState:UIControlStateNormal];
[sender setSelected:YES];
}
}
我已经使用了上面的,但它并没有像我希望的那样工作,如下图所示。
请告诉我如何解决这个问题。
最佳答案
为两个按钮创建一个 socket 并为两个状态设置图像。
- (void)initButtons {
[gdBtn setBackgroundImage:[UIImage imageNamed:@"rd.png"] forState:UIControlStateNormal];
[gdBtn setBackgroundImage:[UIImage imageNamed:@"rd1.png"] forState:UIControlStateSelected];
[bdBtn setBackgroundImage:[UIImage imageNamed:@"rd.png"] forState:UIControlStateNormal];
[bdBtn setBackgroundImage:[UIImage imageNamed:@"rd1.png"] forState:UIControlStateSelected];
}
操作应该如下所示:
- (IBAction)gd:(UIButton *)sender {
[sender setSelected:!sender.isSelected];
[bdBtn setSelected:NO];
}
- (IBAction)bd:(UIButton *)sender {
[sender setSelected:!sender.isSelected];
[gdBtn setSelected:NO];
}
关于ios - 如何通过单击其他按钮取消选择图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23237834/