繁体   English   中英

ScrollView作为PhotoViewer,仅在需要时加载图像

[英]ScrollView as PhotoViewer, load Images only if needed

我想为iPhone创建一个PhotoViewer。

为此,我已经创建了一个启用了Paging的ScrollView,其中我以编程方式添加了UIImageViews。 我看到的问题是,如果我想要100张图像并且全部添加到ScrollView中,它将需要很多性能和内存。

您将如何提高性能? 在滚动浏览页面时,我考虑过要加载以下2个页面的图像,并在2个图像之后释放图像。

我考虑过创建UIScrollView的子类并将其命名为UIPhotoScroller(或类似名称)。 但是我也想在MainWindow中显示一个UIView,其中包含有关图像的信息。 是否可以使UIView在子类中可见?

你真的会帮助我。 预先谢谢你:D

  1. 创建一个NSCache。
  2. 当您需要特定图像时,请尝试从缓存中获取它。 如果不存在,请从磁盘加载它并将其保存在缓存中。 文件名是合适的密钥。
  3. 当收到内存警告时,告诉缓存将自身清空。
  4. 缓存将定期释放其某些条目,具体取决于其配置方式。 这是一件好事,但您可能需要对其进行调整,以使其具有特定的总内存大小。 调整其参数,直到其行为像您想要的那样。 要查看您的内存使用情况,请使用仪器。

如何使用每个单元格一张照片来制作UITableView。 当数据源请求单元格时,您将显示一个微调框,并让排队的NSOperation加载图像并在完成后刷新行。
您可以使用NSQueue控制并发操作的数量,因此可以完全控制性能/响应能力。 然后,当内存/分页等不足时,您可以删除旧的缓存图像。

如果需要水平滚动,则可以使用水平UITableView解决方案。

您看过Three20图书馆吗? 有一个示例可以创建类似于照片应用程序的出色照片查看器,并且可以很轻松地使用three20库。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM