从文档目录在UIScroll上加载图像

时间:2012-04-24 06:29:34

标签: iphone

我有不同的肖像和风景图像,我从文档目录中获取图像,它们共有62个图像。 31具有1015x745尺寸的风景图像和31具有751x1024尺寸的肖像。所有图像都加载到模拟器上,但是当我在设备中运行相同的代码时应用程序崩溃。它只加载风景图像上的肖像。

int porWidth = 768, lanWidth = 1024;
int i=0;
    for (CatalogIndividuals *cat in self.array)
    {
        UIImageView *imageView1 = [[[UIImageView alloc] initWithFrame:CGRectMake(porWidth*i +5, 0, 757, 964)] autorelease];
        imageView1.tag = porImage+i;

        NSString *fullPath =[self.documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",cat.portraitImage]];

        imageView1.image = [UIImage imageWithData:[NSData dataWithContentsOfFile:[fullPath stringByReplacingOccurrencesOfString:@"\\" withString:@"/"]]];
        imageView1.contentMode = UIViewContentModeScaleAspectFit;

        UIImageView *imageView2 = [[[UIImageView alloc] initWithFrame:CGRectMake(lanWidth*i +5, 0, 1015, 620)] autorelease];
        imageView2.tag = lanImage+i;

        NSString *tempPath = [self.documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",cat.landscapImage]];
        NSString *str = [tempPath stringByReplacingOccurrencesOfString:@"\\" withString:@"/"];

        NSLog(@"imageView1 fullPath = %@",str);
        imageView2.image = [UIImage imageWithData:[NSData dataWithContentsOfFile:str]];}

我认为存在一些内存泄漏问题。如果有人有任何解决方案,请提供帮助。

1 个答案:

答案 0 :(得分:2)

这大约是350MB的图像。你没有内存泄漏,你只是使用了太多的内存。这是一台移动设备,而不是台式电脑,您可以使用的资源有限。

您不应该一次加载所有图像,您应该在滚动内容时动态加载它们。看一下Apple为UIScrollView提供的示例代码,看看如何使用平铺来实现这一目标。