【问题标题】:ScrollView as PhotoViewer, load Images only if neededScrollView 作为 PhotoViewer,仅在需要时加载图像
【发布时间】:2011-03-24 20:28:54
【问题描述】:

我想为 iPhone 创建一个 PhotoViewer。

为此,我已经创建了一个启用了分页的 ScrollView,我以编程方式添加了 UIImageViews。我看到的问题是,如果我想要 100 张图片并且我都将添加到 ScrollView 中,这将需要大量的性能和内存。

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

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

你真的会帮助我的。提前谢谢你:D

【问题讨论】:

  • “UIView 从子类可见”是什么意思?
  • 如果用户点击 ScrollView-Subclass 中的图像,我想向 UIView 显示 XIB 中 ScrollView-Subclass 中的信息

标签: iphone xcode uiscrollview uiimageview


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

【讨论】:

    【解决方案2】:

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

    如果需要水平滚动,horizontal UITableView 有解决方案。

    【讨论】:

      【解决方案3】:

      你看过three20 library吗?有一个创建出色的照片应用程序的照片查看器的示例,并且使用three20 库非常容易。

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2013-11-30
        • 2013-10-04
        • 2013-02-13
        • 1970-01-01
        • 1970-01-01
        • 2020-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多