首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图片库是如何显示这么多图片的?

图片库是如何显示这么多图片的?
EN

Stack Overflow用户
提问于 2010-01-03 00:55:41
回答 2查看 1.2K关注 0票数 1

在这个主题上延伸,...without崩溃?我从UIImageViews的图片库加载了大约15张全尺寸的图片,并得到内存不足的警告,最终应用程序崩溃。这些图像的大小从250KB到400KB不等。UIImageViews被设置为纵横比匹配。

图片库似乎加载了文件大小较小的图像版本,而不仅仅是调整其比例。有没有人知道它是如何在不因内存使用而崩溃的情况下显示这么多内容的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-03 01:06:39

正如您所说,您需要调整图像的大小。调整图像的大小并不像你想象的那么明显,但这并不难:

代码语言:javascript
复制
// h = new height; w = new width; image = UIImage
CGSize newSize;
newSize.height = h;
newSize.width = w;
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0, 0, w, h)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

当然,您需要确保释放旧镜像,以便回收内存。最好的方法可能是使用+imageWithContentsOfFile:,因为它不显式地缓存。

票数 3
EN

Stack Overflow用户

发布于 2010-01-03 01:06:14

图片库执行了许多内存优化,可能是:

  1. 加载照片的缩略图,以显示为图库的一部分
  2. 现在仅加载显示的照片的缩略图(例如,不是下一页中的缩略图)
  3. 仅在实际为needed.
  4. ...

时加载大图像

为了让你的生活更轻松,我推荐使用the Facebook three20 library,它包括一个照片查看器:

TTPhotoViewController模仿了苹果的照片应用程序,所有的轻拍和夹击都让人愉悦。您可以提供自己的“照片源”,其工作方式类似于UITableView使用的数据源。与苹果的Photos应用程序不同,它并不局限于本地存储的照片。您的照片可以从网络加载,并且可以增量加载长长的照片列表。

该项目有一个很好的示例代码,因此您可以从那里开始。顺便说一句,这和Facebook iPhone应用中使用的视图是一样的。下面是它的外观:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1992105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档