从阵列中获取图像随机变化

时间:2013-05-13 08:53:05

标签: iphone ios xcode object

我正在该应用程序中开发一个应用程序从NSArray获取图像并将其存储到ImageView中,图像视图垂直滚动,每个页面都有单个图像。

每当app开始时,我想显示随机图像。所有图像每次都会随机播放。

我尝试了这个。

    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];

图像显示正确但不随机更改。 帮助我这个 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您的算法存在严重缺陷,因为您无法确保未选择两次相同的索引。另外,为了正确编写代码,请将“i”替换为其他内容:

int randIdx=arc4random()%[imageArray count];   // For Shuffle the images
NSString *imageName=[imageArray objectAtIndex:randIdx];

答案 1 :(得分:0)

尝试不同的名字

int randNo=arc4random()%[imageArray count];