我的第一个视图上有两个按钮,所以当我点击其中一个按钮时,视图会发生变化,因此我有两个图像,一个用于默认状态,另一个用于选定状态, 首先我尝试使用xib,进入属性并更改状态,然后选择正确的图像,当我构建并运行我的代码时,On clike图像不会改变..
所以我通过代码
这样做了- (IBAction) handleButton:(id)sender
{
UIButton *button = (UIButton*)sender;
int tag = [button tag];
switch (tag)
{
case BUTTON_1:
if ([m_Button1 isSelected])
{
[m_Button2 setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[m_Button1 setSelected:NO];
}
else
{
[m_Button1 setImage:[UIImage imageNamed:@"image_pressed.png"] forState:UIControlStateSelected];
[m_Button1 setSelected:YES];
}
[self displaymethod1];
break;
case BUTTON_2:
[self displaymethod2];
break;
default:
break;
}
}
这里当我点击它时图像会发生变化,我会看到不同的视图..当我再次回到我的第一个视图时,按钮仍然处于选定模式..所以我该如何解决这个问题..
等待你的回复
答案 0 :(得分:16)
我认为通过IB有点简单。
在IB中添加常规Round Rect Button
时,您可以转到Button
面板中的Attributes Inspector
部分来修改其行为。
首先将State Config
保留在Default
中,然后选择所需的图像作为默认状态。此处有image
和background image
属性。设置完成后,您可以将State Config
更改为Highlighted
,并在突出显示按钮时选择要显示的图像。
注意:这适用于xcode4。
答案 1 :(得分:0)
当您的视图出现时,您必须启动所有变量和UI属性 在视图中会出现方法。 (在所有情况下都不一定是解决方案仅适用于您的要求)
您可以设置按钮默认状态和图像。
-(void)viewWillAppear:(BOOL)animated
{
[m_Button2 setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[m_Button1 setSelected:NO];
...
}