0

私は次のようにUIImageViewsで埋めるNSMutableArrayを持っています:

NSMutableArray *digitArray;

spaces = [[NSMutableArray alloc] initWithCapacity:16];

[spaces addObject:space1];
[spaces addObject:space2];
[spaces addObject:space3];
[spaces addObject:space4];
[spaces addObject:space5];
[spaces addObject:space6];
[spaces addObject:space7];
[spaces addObject:space8];
[spaces addObject:space9];
[spaces addObject:space10];
[spaces addObject:space11];
[spaces addObject:space12];
[spaces addObject:space13];
[spaces addObject:space14];
[spaces addObject:space15];
[spaces addObject:space16];  

次に、次のように、各 UIImageView に画像を割り当てます。

[(UIImageView *)spaces[0] setImage:one];
[(UIImageView *)spaces[1] setImage:two];
[(UIImageView *)spaces[2] setImage:three];
[(UIImageView *)spaces[3] setImage:four];
[(UIImageView *)spaces[4] setImage:five];
[(UIImageView *)spaces[5] setImage:six];
[(UIImageView *)spaces[6] setImage:seven];
[(UIImageView *)spaces[7] setImage:eight];
[(UIImageView *)spaces[8] setImage:nine];
[(UIImageView *)spaces[9] setImage:ten];
[(UIImageView *)spaces[10] setImage:eleven];
[(UIImageView *)spaces[11] setImage:twelve];
[(UIImageView *)spaces[12] setImage:thirteen];
[(UIImageView *)spaces[13] setImage:fourteen];
[(UIImageView *)spaces[14] setImage:fifteen];
[(UIImageView *)spaces[15] setImage:sixteen];

したがって、これをデフォルトの組み合わせとして、どの画像がどの UIImageVIew に割り当てられるかをランダムに変更できるようにしたいと考えています。誰でもこれを行う方法を提案できますか?

前もって感謝します!

ジョージ

4

3 に答える 3

0
UIImageView *firstImage = [spaces objectAtIndex:arc4random_uniform(16)];

UIImageView *secondImage = [spaces objectAtIndex:arc4random_uniform(16)];

UIImageView *tempImage = firstImage;

firstImage.image = secondImage.image;

secondImage.image = tempImage.image;

もっと短い方法があるかもしれませんが。しかし、これでうまくいくはずです。ランダムとは、両方の画像が同じであることを意味します。それは害はありませんが、事実上何も変更されません。

于 2013-03-12T14:57:31.670 に答える
0

これでいいと思う

NSMutableArray *temp = [[NSMutableArray alloc] init];
while(space.count > 0){

    int index = arc4random_uniform(space.count);
    [temp addObject:[spaces objectAt:index]];
    [space removeObjectAtIndex:index];
}

spaces = temp;

コードをテストしたことはありませんが、スペースから 1 つのランダムな ImageView を取得して一時配列に配置し、スペースからのすべてのオブジェクトを一時に配置すると、それをスペースに割り当てます。

于 2013-03-12T14:22:36.213 に答える
0

numbers興味のある方のために、私は という 2 番目の配列を作成し、それを画像で埋めることで、私がしようとしていたことを達成しました。次に、この 2 番目の配列をランダム化しました。

 for (int i = 0; i < 16; i++) {
    int j = arc4random() % 16;
    [numbers exchangeObjectAtIndex:i withObjectAtIndex:j];
}

次に、最初の配列のさまざまな UIImageViews の画像を 2 番目の配列の画像として割り当てました。

     [(UIImageView *)spaces[0] setImage:numbers[0]];
     [(UIImageView *)spaces[1] setImage:numbers[1]];
     .... etc

数値配列が混同されているため、numbers[0]andnumbers[1]などの内容は毎回異なります。

でも皆さん、答えてくれてありがとう!

于 2013-03-12T15:54:27.283 に答える