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;
4

5 に答える 5

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;

    }
}
于 2013-03-11T08:35:04.230 に答える
1

それを行うための関数を作成します:

- (void)buttonAction
{
    for (UIButton *button in [self.view subviews])
    {
        if (button.hidden == YES)
             button.hidden = NO;
        else
             button.hidden = YES;
     }
}
于 2013-03-11T08:39:03.637 に答える
0

このようにできる

button1.hidden = button2.hidden = YES;

しかし、これを行うメソッドを作成できる場合は、たとえば

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

そしてそれを呼びます

[self allButtonHidden:YES];
于 2013-03-11T08:28:40.123 に答える
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;
}
于 2013-03-11T08:49:45.797 に答える
0

次のようなボタンの配列がある場合:

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

ボタンの状態に対応するbool値の配列:

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に従って親ビューフレームを設定する必要があります。(ボタンや状態配列などを作成するか、親ビューを作成して適切に配置するなど、どちらか簡単な方を選択してください)

于 2013-03-11T09:06:51.920 に答える