我正在该应用程序中开发一个应用程序从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];
图像显示正确但不随机更改。 帮助我这个 提前谢谢。
答案 0 :(得分:0)
您的算法存在严重缺陷,因为您无法确保未选择两次相同的索引。另外,为了正确编写代码,请将“i”替换为其他内容:
int randIdx=arc4random()%[imageArray count]; // For Shuffle the images
NSString *imageName=[imageArray objectAtIndex:randIdx];
答案 1 :(得分:0)
尝试不同的名字
int randNo=arc4random()%[imageArray count];