我有一个uiscrollview并且我逐个添加uiimageviews但是当我添加超过40个对象时,我有内存问题,我猜应用程序崩溃...我该怎么办?我正在尝试制作像苹果照片浏览器的应用程序!求救!
我不想要thumbnais我只是想在用户从一个镜头轻弹到另一个时显示下一个图像,但我必须卸载上一个图像并显示下一个图像
我删除了之前的这个
UIImageView l;
l=[[scroll subviews] objectAtIndex:0];
[l removeFromSuperview];
l=nil;
然后我像这样添加下一个
[scroll insertSubview:imageView atIndex:counter];
但我看到黑色背景没有图像
请帮忙!
答案 0 :(得分:1)
问问自己,真的是否需要将所有100张图片加载到内存中?为什么不在后台一次加载一些图像,具体取决于用户滚动到哪个图像?
答案 1 :(得分:1)
不要这样做。
如果要显示100个小缩略图,请先使用核心图形调整它们的大小。然后,当您一次显示100张图像时,它们会占用更少的内存。
如果要显示100张大图像,但一次只能显示一张图像,请使用1或2张图像视图加载当前和下一张图像,并以巧妙的方式为它们设置动画,使其看起来层出不穷。您仍然可以使用scrollView,只需监视它的位置并正确定位图像视图。
答案 2 :(得分:1)
执行此操作的最佳方法是一次将一些图像加载到表格视图中。在表格的每个单元格中,放置三个缩略图。你需要制作一个自定义单元格。这样,表格单元格将被排队并重新使用内存。检查Facebook Three20项目,我认为他们已经像这样实现了它,所以你将有一些代码可以使用。
答案 3 :(得分:0)
有一个苹果示例代码可以满足您的需求。查找PageControl示例,它已经实现。基本上滑块从一组控制器获取图像控制器;除此之外,当滚动条更改为上一个或下一个图像时,动态添加控制器并从该数组中删除控制器以保持较低的内存占用。 看看示例代码,很简单。 希望它有所帮助。