无法隐藏创建的UIButton

时间:2013-02-05 12:45:19

标签: iphone xcode uibutton nsmutablearray

我有三个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];

有什么想法吗?任何帮助都将非常感激。

杰米

3 个答案:

答案 0 :(得分:1)

将标签传递给按钮并使用下面的代码

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

你的问题将得到解决并让我回复......

答案 1 :(得分:0)

这些按钮是IBOUTLET?

你可以想到隐藏的另一种方式

喜欢,'[UIView viewWithTag:(NSInteger)]

示例代码在这里

UIButton *tmpBtn = (UIButton *)[self.view viewWithTag:1]; // tag is your choice
tmpBtn.hidden = YES

答案 2 :(得分:0)

  

要做到这一点,我用这个:

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

我建议你检查两件事:

  1. 你有效地采取了分支;

  2. 您的button*变量不是nil

  3. e.g:

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

    (忽略您将在NSLog上获得的警告)。