这是我在这个论坛上的第一个问题,我希望你不要怪我。我正在尝试制作应用,并需要NSMutableArray
的帮助。
我在.h文件中声明了一些UIIMageView对象,如下所示:
IBOutlet UIImageView *image1;
IBOutlet UIImageView *image2;
NSMuttableArray *images;
在.m文件中我设置了隐藏:是。 我也将它们插入NSMuttableArray中,如下所示:
images = [[NSMutableArray alloc] initWithCapacity:2];
[images addObject:image1];
[images addObject:image2];
setHidden:NO
?-(IBAction) btnclick {}
之类的操作之后再次隐藏并显示来自此NSMuttableArray的下一个随机图像以防万一更多。答案 0 :(得分:1)
这可能是你想要做的:
(我也会把它变成一个UIImages数组,因为这就是你应该呈现随机图像的方式,但是你也可以用UIImageViews做这个,这也是不推荐的)
-(void)buttonClickedMethod
{
if(images.count > 0)
{
int randomValue = arc4random_uniform(images.count); //get yourself a nice random value as used in http://stackoverflow.com/questions/160890/generating-random-numbers-in-objective-c
myImageView.image = [images getObjectAtIndex:randomValue]; //get yourself the random image and set it to your UIImageView (which you probably want it to be image1 or image2 in your case)
[images removeObjectAtIndex:randomValue]; //remove the random image from you list so that you want get it again the next you click the button
}
}
这可能是解决问题的最佳方法。
您可能希望添加一个方法,以便随后从图像视图中删除随机图像,但您可能不会再次删除。
答案 1 :(得分:0)
我认为您可以尝试的一种方法如下:
为每个UIImageView
分配一个标记。假设你有100 UIImageView
个,所以你有1到100的标签。这可以通过[view setTag:1];
来完成。
您创建的NSMutableSet
包含1 - 100(他们需要NSNumber
,因为NSSet
只接受对象。)
要从集合中检索对象,请执行[set anyObject]
。然后,您可以将其转换回整数并使用viewWithTag:
来获取视图。然后你可以setHidden:NO
。
最后,您从NSMutableSet
轻松删除对象。
根据定义,数组是有序的。套装更适合您的目的。另外我认为将UIImageView
添加到数组有点奇怪。