当我按下iPhone上的其他按钮时,更改按钮上的图像

时间:2013-01-22 13:22:21

标签: iphone xcode image uibutton

在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)

2 个答案:

答案 0 :(得分:0)

您可以为每个按钮创建九个出口并循环浏览它们以进行检查和取消选择。 (代码没有经过编译检查,你可能会有所了解)

或者,您可以为previousSelectedButton存储插座。

@property(strong)id previousSelectedButton;

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

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

}

答案 1 :(得分: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];
    }

}

希望这可以帮到你。并且不要将这些标记重用于那些按钮的超视图。并为每个按钮创建一系列独特的标记值。