我已将5个图像存储在一个可变数组中,并通过将它们附加到UIButton中随机显示在iPhone视图中。现在我想更改我要点击的按钮上的图像。但在我的代码中,只有最后一张图像不会改变我调用该动作的图像。
答案 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.. }
等...
这有帮助吗?