我制作了一个应用程序,其中包含滚动视图中的图像视图。
我有 3 个班级,每个班级都将图像添加到图像视图中。
当我按下button1时,它调用class1并填充Class1images(从image001到image200)。
当我按下button2时,它调用class2并填充Class2images(从image201到image400)
问题是当我调用 class1 时,图像视图显示 class1images(从 image001 到 image200)。
调用class1后,我调用class2。
当我调用 class2 时,我的图像视图无法显示 class2images(从 image201 到 image400)
但是,class1Images(从 image001 到 image200)仍在应用程序中。
我认为class1图像仍在内存中,因此class2图像无法添加到内存中。
我想在调用 class2 时删除 class1images。
当我调用下一节课时,它将删除内存中的旧图像并替换为新图像。
但是,我的应用程序是使用故事板和 ARC 开发的。
所以,我不能在 ARC 模式下手动释放内存。
有什么方法可以删除内存中的旧图像?
- (void)viewDidLoad{
[super loadView];
self.view.backgroundColor = [UIColor grayColor];
ScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)];
ScrollView.pagingEnabled = YES;
NSInteger numberOfViews = 200;
for (int i = 0; i < numberOfViews; i++) {
CGFloat xOrigin = i * self.view.frame.size.width;
// Create a UIImage to hold Info.png
UIImage *image1 = [UIImage imageNamed:@"Image001.jpg"];
UIImage *image2 = [UIImage imageNamed:@"Image002.jpg"];
:
:
UIImage *image200 = [UIImage imageNamed:@"Image200.jpg"];
NSArray *images = [[NSArray alloc] initWithObjects:image1,image2, . . . ,image200,nil];
ImageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 0,self.view.frame.size.width, self.view.frame.size.height)];
[ImageView setImage:[images objectAtIndex:i]];
[ScrollView addSubview:ImageView];}
ScrollView.contentSize = CGSizeMake(self.view.frame.size.width*numberOfViews,self.view.frame.size.height);
[self.view addSubview:ScrollView];}