我有三个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];
有什么想法吗?任何帮助都将非常感激。
杰米
答案 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 }
我建议你检查两件事:
你有效地采取了分支;
您的button*
变量不是nil
。
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上获得的警告)。