单击更改UI按钮图像

时间:2010-07-14 07:12:55

标签: objective-c

我已将5个图像存储在一个可变数组中,并通过将它们附加到UIButton中随机显示在iPhone视图中。现在我想更改我要点击的按钮上的图像。但在我的代码中,只有最后一张图像不会改变我调用该动作的图像。

3 个答案:

答案 0 :(得分:4)

以下是3个按钮的代码,用于突出显示单击的按钮

-(void) changeButtonImage:(id) sender{
    [button1 setBackgroundImage:[UIImage imageNamed:@"button1Image_off.png"] forState:UIControlStateNormal];
    [button2 setBackgroundImage:[UIImage imageNamed:@"button2Image_off.png"] forState:UIControlStateNormal];
    [button3 setBackgroundImage:[UIImage imageNamed:@"button3Image_off.png"] forState:UIControlStateNormal];

    UIButton *button = sender;

    if (button.tag == 0) {
        [button1 setBackgroundImage:[UIImage imageNamed:@"button1Image_on.png"] forState:UIControlStateNormal];
    }else if (button.tag == 1) {
        [button2 setBackgroundImage:[UIImage imageNamed:@"button2Image_on.png"] forState:UIControlStateNormal];
    }else if (button.tag == 2) {
        [button3 setBackgroundImage:[UIImage imageNamed:@"button3Image_on.png"] forState:UIControlStateNormal];
    }

}

希望这会有所帮助...

快乐的编码......

答案 1 :(得分:2)

如果您正在寻找如何更改按钮上的图像,请执行以下操作:

[myButton setImage:[UIImage imageNamed:@"myImage.png"] forState:UIControlStateNormal];

您可以让它遍历您的数组,但创建一个变量来存储您所在的图像索引。然后使用上面的语句转到下一个分配图像。

答案 2 :(得分:1)

每个按钮都有一个插座(IBOutlet)。您应该将每个列表作为插座列出,并使用Interface Builder将每个按钮连接到这些变量。然后为每个按钮的touchUpInside事件创建一个函数。按下此按钮。使这个功能像:

-(void) buttonPressed:(id) sender
{
     ((UIButton *)sender).image = [UIImage imageNamed:@"Image.png"];
}

您需要设置一个像currentImage这样的变量来跟踪设置的图像。每次单击增加该变量(currentImage ++)。如果它得到>一些最终金额将其设置为0.然后你可以做到

if (currentImage == 0) { set first image; } else if (currentImage == 1) { set second image.. }

等...

这有帮助吗?