2013-03-11 111 views
0

我越有例如2 UIButton隐藏以上的元素

我知道如何隐藏每个:

button1.hidden = 1; 
button2.hidden = 1; 

有没有办法隐藏在一个时间这2个按钮? (如:[button1, button2].hidden = 1

感谢

编辑:任何方式排列的风格?

如:

array *buttons = [button1, button2 ...] ; 
buttons[0,3,5,10].hidden = 1; 
+0

与一行或两行的用户有所不同吗? – 2013-03-11 08:28:26

+0

不,但我有很多按钮设置隐藏或不...所以我正在寻找一个提示,把它放在一个数组中,并隐藏在一行中的元素。 – 2013-03-11 08:35:30

+1

把它们放在相同的父视图,然后隐藏父视图 – adali 2013-03-11 08:41:13

回答

0

如果有按钮阵列像:

NSArray *buttonsArray = @[bt1,bt2,bt3,bt4]; 

和对应于按钮状态布尔值的数组:

NSArray *stateArray = [@YES,@NO,@NO,@YES]; 

,那么你可以:

for (UIButton *bt in buttonsArray){ 
    bt.hidden = [[stateArray objectAtIndex:[buttonsArray indexOfObject:bt]] boolValue]; 
} 

或更有效的一个:

for(int index=0; index<buttonsArray.count; index++){ 
    [[buttonsArray objectAtIndex:index] setHidden:[[stateArray objectAtIndex:index] boolValue]]; 
} 

或更清晰,可读的一个:

for(int index=0;index<buttonsArray.count; index++){ 
    UIButton *bt = [buttonsArray objectAtIndex:index]; 
    BOOL *state = [[stateArray objectAtIndex:index] boolValue]; 
    bt.hidden=state; 
} 

最简单的是(理论上),@adali给出的评论,将其添加到父视图和然后隐藏父视图。但是,您应该适当地创建父视图,并根据您的UI设置父视图框架。 (选择哪一个更容易给你:我。e创建按钮,状态数组等或创建一个父视图并正确定位)

+0

正是我在找什么!谢谢 !! – 2013-03-11 09:13:31

0

可以这样做

button1.hidden = button2.hidden = YES; 

但如果你能创造出不的方法,这将帮助你,例如

- (void)allButtonHidden:(BOOL)value { 
    button1.hidden = value; 
    button2.hidden = value; 
} 

,并调用它

[self allButtonHidden:YES]; 
+3

哦,gawd,多数民众赞成在可怕.. – Rob 2013-03-11 08:29:19

+0

谢谢,如果button1.hidden = 0和button2.hidden = 1 ??任何正确的方式如下:[button1,button2] .hidden = [0,1]? – 2013-03-11 08:29:55

+0

'button1.hidden =!button2.hidden = YES;' – 2013-03-11 08:31:25

1

你可以简单地使用:

for (UIButton *btn in [self.view subviews]) { 
    btn.hidden = YES; 
} 

或者您也可以通过一个条件查找按钮:

for (UIButton *btn in [self.view subviews]) { 
    if ([btn tag]<=2) { 
     btn.hidden = YES; 

    } 
} 
1

创建一个函数做到这一点:

- (void)buttonAction 
{ 
    for (UIButton *button in [self.view subviews]) 
    { 
     if (button.hidden == YES) 
      button.hidden = NO; 
     else 
      button.hidden = YES; 
    } 
} 
0

那么,这是非常棘手的,但根据您的要求,有一个替代解决方案。

1)将标签为每个按钮

[button1 setTag:1]; 
[button2 setTag:2]; 
... 
... 

2)找到与标签按钮对象(其可以与运行循环)

for(int i=0;i<numberOfButton;i++) 
{ 
    UIButton *targetButton = (UIButton *)[self.view viewWithTag:i]; 
    targetButton.hidden = 1; 
}