スクロール ビュー内にイメージ ビューを含むアプリを作成します。
3 つのクラスがあり、各クラスはイメージ ビューにイメージを追加します。
ボタン1を押すと、class1が呼び出され、Class1の画像(image001からimage200まで)が埋められます。
ボタン 2 を押すと、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];}