所以在我的旋转木马中我实现了这个:
- (UIView *)carousel:(iCarousel *)_carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
// int randomforIndex = arc4random()%[images count]+1;
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[images objectAtIndex:index]]];
return imageView;
}
我使用NSString
分配我的图片。只要带有图像的轮播停在特定[images objectAtIndex:index]
,它就会执行相应的操作。
但是当我使用randomforIndex
部分作为我的index
时,这一切都变得混乱了。所以我的问题是如何在不随机输入值的情况下随机拍摄图像。
这是我用NSString添加图像的方式:
for (int x=1; x<76;x++) {
// add as NSString
[images addObject:[NSString stringWithFormat:@"%d", x]];
}
答案 0 :(得分:0)
您将必须单独存储随机列表。创建另一个数组并将随机序列放入该数组中。然后,您可以将其用作数据源,并保持数字和图像之间的链接不变。
答案 1 :(得分:0)
您可以尝试这样做:首先使用您的代码填充images
数组。然后你 shuffle 这个有序数组。这里有一个很好的NSArray shuffle类别:Shuffling an NSArray。
请注意,您应该删除NSArray+Helpers.h
images = [[NSMutableArray alloc] init];
for (int x=1; x<76;x++)
{
[images addObject:[NSString stringWithFormat:@"%d.png", x]];
}
images = (NSMutableArray *)[images shuffled];
这部分代码经过测试并且有效。
从这一点开始,你可以使用简单的viewForItemAtIndex,没有任何随机化,因为文件名已经被删除了。
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
if (view == nil)
{
view = [[UIImageView alloc] init];
}
UIImage* nimage = [UIImage imageNamed:[images objectAtIndex:index]];
view.image = nimage;
view.frame = CGRectMake(0.0,0.0,nimage.size.width,nimage.size.height);
return view;
}