Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从数组中随机设置按钮的图像,并获取按钮';s cgrect';从数组中删除_Ios_Objective C_Nsarray - Fatal编程技术网

Ios 从数组中随机设置按钮的图像,并获取按钮';s cgrect';从数组中删除

Ios 从数组中随机设置按钮的图像,并获取按钮';s cgrect';从数组中删除,ios,objective-c,nsarray,Ios,Objective C,Nsarray,我有42个按钮在我的故事板,我采取了一系列的图像。在此阵列中,共有7个图像 NSArray *arrimg=[NSArray arrayWithObjects:@"book.png", @"lock.png", @"Exclamation.png", @"game.png", @"Music.png", @"Videos.png", @"Camera32.png", nil]; 那个么,我怎么能每次在按钮上随机拍摄图像呢 我应该收集纽扣还是做其他事情 注意:-我没有按程序设置按钮 一个新的问题

我有42个按钮在我的故事板,我采取了一系列的图像。在此阵列中,共有7个图像

NSArray *arrimg=[NSArray arrayWithObjects:@"book.png", @"lock.png", @"Exclamation.png", @"game.png", @"Music.png", @"Videos.png", @"Camera32.png", nil];
那个么,我怎么能每次在按钮上随机拍摄图像呢

我应该收集纽扣还是做其他事情

注意:-我没有按程序设置按钮

一个新的问题是:如何从数组中取出所有42个按钮的CGRect并在屏幕上随机显示

NSMutableArray *mutarr=[[NSMutableArray alloc]init];
NSMutableArray *array=[NSMutableArray arrayWithArray:mutarr];
[array addObject:[NSValue valueWithCGRect:CGRectMake(50, 50, 47, 25)]];
[array addObject:[NSValue valueWithCGRect:CGRectMake(97, 50, 47, 25)]];
[array addObject:[NSValue valueWithCGRect:CGRectMake(144, 50, 47, 25)]];
CGRect someRect1 = [[array objectAtIndex:0] CGRectValue];
CGRect someRect2 = [[array objectAtIndex:0] CGRectValue];
CGRect someRect3 = [[array objectAtIndex:0] CGRectValue];
我不知道接下来该怎么办。

试试这个

int length = [myArray count];
// Get random value between 0 and 99 if your count is 100
int randomindex = arc4random() % length;

Object randomObj = [myArray objectAtIndex:randomindex];

将上述代码添加到函数中,并从视图中调用该代码。将显示。

为0到41之间的每个42按钮添加标记

- (void)viewDidLoad {
        [super viewDidLoad];
        arrimg=[NSArray arrayWithObjects:@"book.png", @"lock.png", @"Exclamation.png", @"game.png", @"Music.png", @"Videos.png", @"Camera32.png", nil];
        NSTimer *timer = [NSTimer timerWithTimeInterval:1.0f target:self selector:@selector(performAction) userInfo:nil repeats:YES];
        [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
    }
    -(void)performAction {

    NSInteger randomNumberForImage = rand() % (arrimg.count);
    NSInteger randomNumberForButton=rand()%(numberOfButton);// numberOfButton=42;
    UIButton *btn=[self viewWithTag:randomNumberForButton];
    [btn setImage:[UIImage imageNamed:[arrimg objectAtIndex:randomNumberForImage]] forState:UIControlStateNormal];

}

我已经试过了,它很有效

在viewdidload中:

arrimg=[[NSMutableArray alloc]initWithObjects:@"book.png",@"lock.png",@"Exclamation.png",@"game.png",@"Music.png",@"Videos.png",@"Camera32.png", nil];


NSMutableArray *mutArrayb = [NSMutableArray arrayWithArray:arrimg];
NSUInteger count = [mutArrayb count];
if (count > 1)
{
    for (NSUInteger i = count - 1; i > 0; --i) {
        [mutArrayb exchangeObjectAtIndex:i withObjectAtIndex:arc4random_uniform((int32_t)(i + 1))];
        NSLog(@"%@",[mutArrayb objectAtIndex:i]);
    }
}
//rndmim=[[NSMutableArray alloc]initWithCapacity:7];
rndmim = [NSMutableArray arrayWithArray:mutArrayb];
for (int i=0; i<7; i++)
{
    NSLog(@"%d  %@",i,[rndmim objectAtIndex:i]);
    [btn1 setImage:[UIImage imageNamed:[rndmim objectAtIndex:0]] forState:UIControlStateNormal];
    [btn2 setImage:[UIImage imageNamed:[rndmim objectAtIndex:1]] forState:UIControlStateNormal];
    [btn3 setImage:[UIImage imageNamed:[rndmim objectAtIndex:2]] forState:UIControlStateNormal];
    [btn4 setImage:[UIImage imageNamed:[rndmim objectAtIndex:0]] forState:UIControlStateNormal];
    [btn5 setImage:[UIImage imageNamed:[rndmim objectAtIndex:4]] forState:UIControlStateNormal];
    [btn6 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
    [btn7 setImage:[UIImage imageNamed:[rndmim objectAtIndex:6]] forState:UIControlStateNormal];
    [btn8 setImage:[UIImage imageNamed:[rndmim objectAtIndex:1]] forState:UIControlStateNormal];
    [btn9 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
    [btn10 setImage:[UIImage imageNamed:[rndmim objectAtIndex:0]] forState:UIControlStateNormal];
    [btn11 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
    [btn12 setImage:[UIImage imageNamed:[rndmim objectAtIndex:3]] forState:UIControlStateNormal];
    [btn13 setImage:[UIImage imageNamed:[rndmim objectAtIndex:3]] forState:UIControlStateNormal];
    [btn14 setImage:[UIImage imageNamed:[rndmim objectAtIndex:1]] forState:UIControlStateNormal];
    [btn15 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
    [btn16 setImage:[UIImage imageNamed:[rndmim objectAtIndex:2]] forState:UIControlStateNormal];
    [btn17 setImage:[UIImage imageNamed:[rndmim objectAtIndex:3]] forState:UIControlStateNormal];
    [btn18 setImage:[UIImage imageNamed:[rndmim objectAtIndex:1]] forState:UIControlStateNormal];
    [btn19 setImage:[UIImage imageNamed:[rndmim objectAtIndex:0]] forState:UIControlStateNormal];
    [btn20 setImage:[UIImage imageNamed:[rndmim objectAtIndex:0]] forState:UIControlStateNormal];
    [btn21 setImage:[UIImage imageNamed:[rndmim objectAtIndex:2]] forState:UIControlStateNormal];
    [btn22 setImage:[UIImage imageNamed:[rndmim objectAtIndex:3]] forState:UIControlStateNormal];
    [btn23 setImage:[UIImage imageNamed:[rndmim objectAtIndex:4]] forState:UIControlStateNormal];
    [btn24 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
    [btn25 setImage:[UIImage imageNamed:[rndmim objectAtIndex:6]] forState:UIControlStateNormal];
    [btn26 setImage:[UIImage imageNamed:[rndmim objectAtIndex:4]] forState:UIControlStateNormal];
    [btn27 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
    [btn28 setImage:[UIImage imageNamed:[rndmim objectAtIndex:0]] forState:UIControlStateNormal];
    [btn29 setImage:[UIImage imageNamed:[rndmim objectAtIndex:1]] forState:UIControlStateNormal];
    [btn30 setImage:[UIImage imageNamed:[rndmim objectAtIndex:6]] forState:UIControlStateNormal];
    [btn31 setImage:[UIImage imageNamed:[rndmim objectAtIndex:3]] forState:UIControlStateNormal];
    [btn32 setImage:[UIImage imageNamed:[rndmim objectAtIndex:0]] forState:UIControlStateNormal];
    [btn33 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
    [btn34 setImage:[UIImage imageNamed:[rndmim objectAtIndex:6]] forState:UIControlStateNormal];
    [btn35 setImage:[UIImage imageNamed:[rndmim objectAtIndex:3]] forState:UIControlStateNormal];
    [btn36 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
    [btn37 setImage:[UIImage imageNamed:[rndmim objectAtIndex:0]] forState:UIControlStateNormal];
    [btn38 setImage:[UIImage imageNamed:[rndmim objectAtIndex:1]] forState:UIControlStateNormal];
    [btn39 setImage:[UIImage imageNamed:[rndmim objectAtIndex:2]] forState:UIControlStateNormal];
    [btn40 setImage:[UIImage imageNamed:[rndmim objectAtIndex:3]] forState:UIControlStateNormal];
    [btn41 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
    [btn42 setImage:[UIImage imageNamed:[rndmim objectAtIndex:5]] forState:UIControlStateNormal];
}
arrimg=[[NSMutableArray alloc]initWithObjects:@“book.png”@“lock.png”@“感叹号.png”@“game.png”@“Music.png”@“Videos.png”@“Camera32.png”,nil];
NSMUTABLEARRY*mutArrayb=[NSMUTABLEARRY arrayWithArray:arrimg];
NSU整数计数=[mutArrayb计数];
如果(计数>1)
{
对于(整数i=count-1;i>0;--i){
[mutArrayb交换对象索引:i与对象索引:arc4random_uniform((int32_t)(i+1));
NSLog(@“%@,[mutArrayb objectAtIndex:i]);
}
}
//rndmim=[[NSMutableArray alloc]initWithCapacity:7];
rndmim=[NSMUTABLEARRY arrayWithArray:mutArrayb];

对于(int i=0;ihey@Yagnesh,他说他使用42个按钮,你的代码是1个按钮,请编辑你的问题:)投票+1回答我有相同的答案代码,所以不要把它放在这里coding@YagneshThanku;)@甘西亚姆Tomar@yagneshtagbutton的视图具有属性,即“tag”,u可以为每个按钮定义标签号以唯一标识。通过使用viewWithTag以编程方式使用标记名访问按钮