0

我有三个 UIButtons,它们使用以下命令以随机顺序显示:

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 } 

我建议你检查两件事:

  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 回答