1

我使用了一个 UIPageViewController 我想显示 24 个页面,每个页面都不是文本,而是 contentview 控制器中的图像,我使用此代码

 self.imgView.image=nil;
 self.imgView.image= [UIImage imageNamed:[NSString  stringWithFormat:@"image%d.jpg",index+1]];

 if(self.categoryId==3 ||self.categoryId==4)
 {
     self.imgView.contentMode=UIViewContentModeScaleToFill;
 }
 else
 {
     self.imgView.contentMode=UIViewContentModeScaleAspectFit;
 }

但问题是当我运行应用程序并在 17 或 18 页之后翻页时,它会给我一个内存警告,我的应用程序崩溃了

4

1 回答 1

1

您可以尝试使用:

NSString* imgFile = [NSString  stringWithFormat:@"image%d",index+1];
NSString* pathToImageFile = [[NSBundle mainBundle] pathForResource:imgFile ofType:@"jpg"];
self.imgView.image = [UIImage imageWithContentsOfFile:pathToImageFile];

事实上,imageNamed缓存您通过它加载的所有图像。缓存变得越来越大,它会阻止内存被适当地释放。

于 2012-10-30T12:24:28.167 回答