0

ビューの読み込み時にランダムな画像を表示しようとしています。

表示する画像を取得できますが、ランダムではなく、% の位置として表示されます。

たとえば、次のコードは常に 4 番目の画像を表示します。

これが私のコードです。

{
    [super viewDidLoad];

    int randomImages = rand() % 4;
    switch (randomImages) {
        case 0:
            _imageView.image = [UIImage imageNamed:@"1.png"];
            break;
        case 1:
            _imageView.image = [UIImage imageNamed:@"2.png"];
            break;
        case 2:
            _imageView.image = [UIImage imageNamed:@"3.png"];
            break;
        case 3:
            _imageView.image = [UIImage imageNamed:@"4.png"];
            break;
    }

}

私が間違っていることを知っている人はいますか?

4

3 に答える 3

1
((arc4random() % 4) + 1)

rand() が予測可能であるという同じ問題がありました。arc4random() に切り替えて、人生が良くなりました。

編集:

素晴らしく合理化されたものが必要な場合は、そのスイッチブロック全体を次のものだけに置き換えることができます:

[super viewDidLoad];

_imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png", ((arc4random() % 4) + 1)]];
于 2013-07-16T14:33:35.943 に答える
0

arc4random_uniform(upper_bound) を試してください。0 から upper_bounds-1 までの数値を返します

于 2013-07-16T14:33:12.833 に答える
0

このようにしてみて、

   int randomImages = random()%4;
于 2013-07-16T14:37:17.100 に答える