从数组中选择一个随机按钮

时间:2013-08-20 03:21:11

标签: ios objective-c uibutton nsarray

我必须隐藏我的四个UIButton中的一个,随机选择,但是除了一个。

为此,我创建了一个NSMutableArray,并在那里添加了所有按钮,如下例所示:

rand_btns = [[NSMutableArray alloc] initWithObjects: _bt1, _bt2, _bt3, _bt4,nil];

不,每个按钮都有自己的标记: _bt1 包含标记1 ,_bt2标记为2,等等...

请,任何想法?我想隐藏一个随机按钮,但除了标签等于我的按钮外: int Level

我想将它用于测验应用程序。

所以,我的int Level是1-4个随机数,当我的四个按钮中有一个标签等于我的 int Level 时,该按钮应该被隐藏起来。

4 个答案:

答案 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];
    }


 }