2013-03-11 114 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; 
}