2010-07-14 101 views
2

我已将5个图像存储在可变数组中,并通过将它们附加到UIButton中随机显示在iPhone视图中。现在我想改变一个按钮上的图像,我将点击它。但在我的代码中,只有最后一幅图像的变化不是我称之为动作的图像。单击更改UIbutton图像

+0

我修剪请求的数目你的问题紧迫。总的来说,将这个问题添加到问题上并不是一个好主意,因为这里的读者绝大多数是志愿者,他们不太喜欢匆忙。请不要在将来添加此项。谢谢。 – halfer 2015-12-03 20:39:21

回答

4

这里是突出了点击的按钮

-(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]; 
    } 

} 

希望这有助于...

编码快乐的3个按钮的代码...

+0

@ Suriya:谢谢Suriya它帮助了我:-) – Developer 2010-09-24 07:18:43

+2

Welcm ..获得一票是一个最好的感谢...:P – 2010-09-24 13:14:16

2

如果你正在寻找如何更改按钮上的图像只是做:

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

你可以把它通过你的阵列循环,但创建一个变量来存储你是什么图像索引。然后使用上面的语句转到下一个分配图像。

+0

我有5个图像,我随机调用它们来生成5 * 5的网格。在这个网格中,图像是随机显示的。现在我想要的是,当我点击或选中此网格中的任何图像时,图像应该会发生变化。但是当我单击网格中的任何图像时,只有最后一张图像会在(5,5)位置处改变我,即图像。我已经拍下了按钮并在其上设置了图像。这意味着我有一个5 * 5的图像按钮网格。现在请帮助。 – Developer 2010-08-03 09:52:53

1

您是否为每个按钮都有一个Outlet(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.. } 

等等

这是否帮助?