0

次を使用してランダムな順序で表示される3つのUIButtonがあります。

NSMutableArray *indexArray = [NSMutableArray arrayWithObjects:
                              [NSValue valueWithCGRect:CGRectMake(20, 187, 280, 44)],
                              [NSValue valueWithCGRect:CGRectMake(20, 258, 280, 44)],
                              [NSValue valueWithCGRect:CGRectMake(20, 330, 280, 44)], nil];

//Randomize the array
NSUInteger count = [indexArray count];
for (NSUInteger i = 0; i < count; ++i) {
    int nElements = count - i;
    int n = (arc4random() % nElements) + i;
    [indexArray exchangeObjectAtIndex:i withObjectAtIndex:n];
}

//Assign the frames
button1.frame = [((NSValue *)[indexArray objectAtIndex:0]) CGRectValue];
button2.frame = [((NSValue *)[indexArray objectAtIndex:1]) CGRectValue];
button3.frame = [((NSValue *)[indexArray objectAtIndex:2]) CGRectValue];

いくつかの項目が表示された後、何らかの理由でこれらのボタンを非表示にできません。私は例えば試しました

button1.hidden = YES; また、[self.button1.hidden = YES];

何か案は?どんな助けでも大歓迎です。

ジェイミー

4

3 に答える 3

1

タグをボタンに渡し、以下のコードを使用します

 for (UIButton *btn in [self.view subviews]) 
    {
        if (btn.tag==1)
        {
            [btn removeFromSuperview];
        }
   }

そしてあなたの問題は解決され、私を元に戻します..

于 2013-02-05T13:14:56.693 に答える
0

これらのボタンはIBOUTLET?

別の隠し方を考える

'[UIView viewWithTag:(NSInteger)] のように

サンプルコードはこちら

UIButton *tmpBtn = (UIButton *)[self.view viewWithTag:1]; // tag is your choice
tmpBtn.hidden = YES
于 2013-02-05T12:53:01.820 に答える
0

これを行うには、これを使用します:

 if ([questions count]== 11)
   { button1.hidden = YES; button2.hidden = YES; button3.hidden = YES } 

次の 2 点を確認することをお勧めします。

  1. あなたが効果的に枝を取ること。

  2. あなたのbutton*変数はそうではありませんnil

例えば:

 if ([questions count]== 11)
 {
    NSLog(@"Enter branch with %x, %x, %x", button1, button2, button3);
    button1.hidden = YES; button2.hidden = YES; button3.hidden = YES;
 } 

(NSLog で表示される警告は無視してください)。

于 2013-02-05T14:24:48.223 に答える