Ios 在选项卡之间切换时重置多个按钮的图像
我有一个屏幕,在那里我使按钮看起来像带有图像的复选框(Ios 在选项卡之间切换时重置多个按钮的图像,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我有一个屏幕,在那里我使按钮看起来像带有图像的复选框(checked.png和unchecked.png)。当我在选项卡之间切换时,我应该重置所有复选框(按钮),并使用unchecked.png。 我做过类似的事情 self->eatbuffet = NO; self->eatnonveg = NO; self->eatalcohol = NO; if (eatbuffet == NO || eatnonveg == NO || eatalcohol == NO) {
checked.png
和unchecked.png
)。当我在选项卡之间切换时,我应该重置所有复选框(按钮)
,并使用unchecked.png
。
我做过类似的事情
self->eatbuffet = NO;
self->eatnonveg = NO;
self->eatalcohol = NO;
if (eatbuffet == NO || eatnonveg == NO || eatalcohol == NO) {
[button setImage:[UIImage imageNamed:@"un_checked"] forState:UIControlStateNormal];
}
这三个都是布尔值。
如果我选中一个并切换选项卡,它就会工作。但是如果我对2或3也这样做,它就不起作用了。
请帮忙 以下是一个可能对您有所帮助的小想法:
/*
this method is called everytime your view is going to be shown.
if your application is based on a tab view controller for example,
this method will get called every time you go back to that view
*/
-(void) viewWillAppear {
[super viewWillAppear];
self.eatbuffet = NO;
self.eatnonveg = NO;
self.eatalcohol = NO;
[button1 setImage[UIImage imageNamed:@"un_checked"] forState:UIControlStateNormal];
[button2 setImage[UIImage imageNamed:@"un_checked"] forState:UIControlStateNormal];
[button3 setImage[UIImage imageNamed:@"un_checked"] forState:UIControlStateNormal];
}
你可以这样做
-(void)checkBox:(UIButton*)button{
switch (button.tag) {
case 0:{
eatbuffet = button;
[eatbuffet setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];
[eatnonveg setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
[eatalcohol setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
}
break;
case 1:
{
eatnonveg = button;
[eatbuffet setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
[eatnonveg setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];
[eatalcohol setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
}
break;
case 2:
{
eatalcohol = button;
[eatbuffet setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
[eatnonveg setBackgroundImage:[UIImage imageNamed:@"uncheck"] forState:UIControlStateNormal];
[eatalcohol setBackgroundImage:[UIImage imageNamed:@"check"] forState:UIControlStateNormal];
}
break;
default:
break;
}
}
注意:必须设置标记0,1,2。。。。对于所有按钮。只需为两种状态放置两个不同的图像,即:选定和默认。。当按钮更改其状态时,图像将更改
self.myButton.selected = YES/NO;
我在这里了解到的是,您只需更改1个按钮的图像。这就是你想做的吗?不,我应该重置所有按钮。我知道我还需要添加一些额外的代码,但不知道这一点。您是否有所有3个按钮的出口(参考s)?@downvoter,downvote的原因??