加载多个没有内存警告的本地映像
问题描述:
好吧,内存管理让我发疯!加载多个没有内存警告的本地映像
这里是我的问题:
我有n引用图像的plist中。 我只是试图做的是抓住每个孩子,并将其加载到UIImageView,它被添加到启用分页的UIScrollView。
我的问题:
- 我有n个图像。可能只有3个,但可能是60个或更多。
- 每张图片都有相当大的分辨率(1152x1536),因为它是可缩放的。
我读到CATiledLayer,看到PhotoScroller样品,但我想避免使用CATiledLayer因为它创造了一个淡入同时显示图像的作品,在我的项目,效果不适合。
我只是想听听你的意见,你通常如何解决这类任务?
我会离开这里一块我的代码:
UIImage * image;
UIImageView * imageview;
for (int i = 0; i < [data count]; i++)
{
image = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@",
[[NSBundle mainBundle] bundlePath],
[[data objectAtIndex:i] objectForKey:@"content"]]];
[content addObject:image];
imageview = [[UIImageView alloc] initWithImage: [content objectAtIndex:i] ];
[imageview setTag:i+10];
imageview.frame = CGRectMake(1024 * i, 0, 1024, 768);
[scroll addSubview: imageview];
[imageview release];
[image release];
}
[scroll setContentSize:CGSizeMake(1024*[data count], 768)];
此代码使应用程序收到内存警告,当我尝试加载例如60张图片。
我想你明白了吧?
有什么建议吗?
感谢您的帮助提前!
答
如果您想避免内存问题,则不应一次加载它们,只在需要时加载它们。要做到这一点,你可以按照苹果提供的例子,here。
基本上,你所做的只是加载三个图像:现在显示的图像和放置在右侧和左侧的图像。然后,当您滚动时,让我们说到右侧,您将删除之前位于左侧的图像,并在右侧放置一个新图像。
真的非常感谢男士,我会试一试,稍后再回来告诉你我做了什么! – 2012-02-14 11:15:13