0

在 IB 中,我创建了 9 个按钮(自定义)和一个选择状态配置:选中(button1.png)禁用(button1_disabled.png).....(button9_disabled.png)

此提示仅在选择按钮和未选择按钮时

- (IBAction)onButtonsTapped:(UIButton*)sender {
    [[sender setSelected:![sender isSelected]];
    [priviousSelectedBtn setSelected:NO];
}

但我想发布:

当我按下按钮 1(动作)时,更改按钮 1 上的图片(setSelected:YES)

我按下按钮 2(动作)更改按钮 2 上的图片(setSelected:YES)并更改数字 1 上的图像(setSelected:NO)

我按下按钮 9(动作)更改按钮 9 上的图像(setSelected:YES)并更改按钮 2 上的图像(setSelected:NO)

4

2 回答 2

0

您可以为每个按钮创建九个插座并循环通过它们来检查和取消选择。(代码未经编译器检查,您可能会有所了解)

或者,您可以为 previousSelectedButton 存储一个出口。

@property(strong)id previousSelectedButton;

- (IBAction)onButtonsTapped:(UIButton*)sender {
    [sender setSelected];
    [previousSelectedButton setSelected:NO];

    if(previousSelectedButton==nil || previousSelectedButton!=sender){
         previousSelectedButton=sender;
    }

}
于 2013-01-22T13:30:43.960 回答
0

试试下面的代码

for (int tag = 1; tag <= 9; tag++)//set your tag value as you wish max is 9 as you have mentioned there are 9 buttons
{
    UIButton *btn = (UIButton*)[self.view viewWithTag:tag];

    if (btn.tag != sender.tag)
    {
        [btn setSelected:NO];
    }

}

希望这可以帮助你。并且不要将这些标签重用于这些按钮的超级视图。并为每个按钮制作一系列独特的标签值。

于 2013-01-22T13:39:48.260 回答