我的xib中有5个按钮,按钮1到4被映射到
-(IBAction)btn1to4:(UIButton *)sender;
按钮5映射到
-(IBAction)btnFive:(id)sender;
最初所有4个按钮都被隐藏,只有按钮5可见,我需要的是当我点击按钮5时,所有4个按钮都会出现,当我再次点击按钮5时,它们应该消失。对于单个按钮,我可以将按钮5中的代码编写为button1.hidden=NO
,button2.hidden=NO
并且很快。但是我的按钮1到4被映射到单个btn1to4方法。我应该如何在我的btnFive方法中编码一次隐藏/取消隐藏所有4个按钮?
答案 0 :(得分:2)
将按钮1到4添加到界面构建器中的IBOutletCollection
。添加属性
@property (nonatomic, strong) IBOutletCollection(UIButton) NSArray *buttons1_4;
然后拖动按钮1..4。 Here is an answer explaining how to do it step-by-step
现在,您可以使用循环操作该集合中的所有按钮,而不是单独引用它们:
-(void)flipButtonsVisibility:(UIButton*)sender {
for (UIButton *btn in buttons1_4) {
btn.hidden = !btn.hidden;
}
}
答案 1 :(得分:1)
为 button5 添加标记,例如
button5.tag = 101;
在按钮5 IBAction
中将参数中的id
更改为UIButton *
,例如
-(IBAction)btnFive:(UIButton *)sender
并编写以下代码
-(IBAction)btnFive:(UIButton *)sender
{
if(sender.tag == 101)
{
self.btn1.hidden = YES;
self.btn2.hidden = YES;
self.btn3.hidden = YES;
self.btn4.hidden = YES;
sender.tag = 102;
}
else
{
self.btn1.hidden = NO;
self.btn2.hidden = NO;
self.btn3.hidden = NO;
self.btn4.hidden = NO;
sender.tag = 101;
}
}
答案 2 :(得分:1)
在您的.h
文件中
int a;
的.m
-(void)viewDidLoad
{
a=0;
}
点击按钮
-(IBAction)btnFive:(id)sender
{
if(a==0)
{
button1.hidden = YES;
button2.hidden = YES;
button3.hidden = YES;
button4.hidden = YES;
a = 1;
}
else
{
button1.hidden = NO;
button2.hidden = NO;
button3.hidden = NO;
button4.hidden = NO;
a = 0;
}
}
答案 3 :(得分:0)
在你的 - (IBAction)btnFive:(id)发件人中,首先检查任何一个按钮(来自1-4)隐藏属性&在条件上做相反的事情。请在下面找到样本 -
-(IBAction)btnFive:(id)sender {
if(btn4.hidden==false){
btn1.hidden=true;
btn2.hidden=true;
btn3.hidden=true;
btn5.hidden=true;
}else{
btn1.hidden=false;
btn2.hidden=false;
btn3.hidden=false;
btn5.hidden=false;
}
}
尝试编写较少数量的行代码并尝试编写有效行。
如果您需要更多帮助,请告诉我们。如果您觉得这个答案合适,请投票给我。 所有最好的