我必须隐藏我的四个UIButton中的一个,随机选择,但是除了一个。
为此,我创建了一个NSMutableArray,并在那里添加了所有按钮,如下例所示:
rand_btns = [[NSMutableArray alloc] initWithObjects: _bt1, _bt2, _bt3, _bt4,nil];
不,每个按钮都有自己的标记: _bt1 包含标记1 ,_bt2标记为2,等等...
请,任何想法?我想隐藏一个随机按钮,但除了标签等于我的按钮外: int Level 。
我想将它用于测验应用程序。
所以,我的int Level是1-4个随机数,当我的四个按钮中有一个标签等于我的 int Level 时,该按钮应该被隐藏起来。
答案 0 :(得分:0)
就这样做。
int randomTag = rand() % 4;
while (randomTag == Level) {
randomTag = rand() % 4;
}
[[randButtons objectAtIndex:randomTag] setHidden:YES]
答案 1 :(得分:0)
试试这个
-(void)randomSelForLevel:(NSInteger)level
{
int randomTag = rand() % 4;
while (randomTag == level) {
randomTag = rand() % 4;
}
for (int i=0; i<[rand_btns count]; i++) {
[[rand_btns objectAtIndex:randomTag] setHidden:NO];
}
[[rand_btns objectAtIndex:randomTag] setHidden:YES];
}
答案 2 :(得分:0)
选择两者之间的随机编号不使用此代码:
int random = lowno + arc4random()%(highno-lowno);
感谢。
答案 3 :(得分:0)
abarr = [[NSMutableArray alloc]init];
for (int i = 0; i < 5; i++){
ab = [[UIButton alloc]init];
ab = [UIButton buttonWithType:UIButtonTypeRoundedRect];
ab.tag = i;
[ab setTitle:[NSString stringWithFormat:@"%ld",ab.tag] forState:UIControlStateNormal];
[ab addTarget:self action:@selector(clicked:) forControlEvents:UIControlEventTouchUpInside];
[ab sizeToFit];
ab.backgroundColor = [UIColor yellowColor];
[abarr addObject:ab];
[self.view addSubview:ab];
switch (ab.tag) {
case 0:
ab.frame=CGRectMake(0, 0, 50,50);
break;
case 1:
ab.frame=CGRectMake(50, 0, 50,50);
break;
case 2:
ab.frame=CGRectMake(100, 0, 50,50);
break;
case 3:
ab.frame=CGRectMake(150, 0, 50,50);
break;
default:
break;
}
}
randomTag = rand() % 4;
for (int i=0; i<[abarr count]; i++) {
[[abarr objectAtIndex:randomTag] setBackgroundColor:[UIColor redColor]];
}
[[abarr objectAtIndex:randomTag] setBackgroundColor:[UIColor redColor]];
}
-(void)clicked:(UIButton*)button
{
NSLog(@"%ld",(long int)[button tag]);
for (int i=0; i<[abarr count]; i++)
{
[[abarr objectAtIndex:randomTag] setHidden:YES];
}
}