0

そのアプリで1つのアプリを開発しています NSArray から画像を取得し、それを ImageView に保存します。その画像ビューは垂直方向にスクロールし、各ページには単一の画像があります。

アプリの起動時に毎回ランダムな画像を表示したい.すべての画像が毎回シャッフルする.

私はこれを試しました。

    UIScrollView *scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 490)];


    [scrollView setPagingEnabled:YES];


    [scrollView setShowsHorizontalScrollIndicator:NO];


    NSArray *imageArray=[[NSArray alloc]initWithObjects:@"image1",@"image2",@"image3",@"image4",@"image5", nil];

    for( i=0; i< [imageArray count];i++)
    {

        int i=arc4random()%[imageArray count];   // For Shuffle the images

        NSString *imageName=[imageArray objectAtIndex:i];


        NSString *fullImageName=[NSString stringWithFormat:@"%@.jpeg",imageName];


        int padding=25;


       CGRect imageViewFrame=CGRectMake(scrollView.frame.size.width*i+padding, scrollView.frame.origin.y, scrollView.frame.size.width-2*padding, scrollView.frame.size.height);


        UIImageView *imageView=[[UIImageView alloc]initWithFrame:imageViewFrame];

        [imageView setImage:[UIImage imageNamed:fullImageName]];


        [imageView setContentMode:UIViewContentModeScaleAspectFit];

        [scrollView addSubview:imageView];

    }

    CGSize scrollViewSize=CGSizeMake(scrollView.frame.size.width*[imageArray count], scrollView.frame.size.height);


    [scrollView setContentSize:scrollViewSize];

    [self.view addSubview:scrollView];

画像は適切に表示されますが、ランダムに変化しません。事前に感謝します。

4

2 に答える 2

0

別の名前を試してください

int randNo=arc4random()%[imageArray count];
于 2013-05-13T09:08:42.637 に答える
0

あなたのアルゴリズムには、同じインデックスを 2 回選択していないことを保証しないという重大な欠陥があります。また、コードを適切に記述するために、「i」を別のものに置き換えてください。

int randIdx=arc4random()%[imageArray count];   // For Shuffle the images
NSString *imageName=[imageArray objectAtIndex:randIdx];
于 2013-05-13T08:57:05.047 に答える