【问题标题】:More memory efficient way of displaying images in iOS?在 iOS 中显示图像的内存效率更高的方式?
【发布时间】:2013-03-30 06:28:16
【问题描述】:

我有一个照片拼贴应用程序,它从用户的 facebook/instagram/库中获取一堆照片,然后将其中的一堆绘制到 UIView 上。为了控制数量,有一个计算密度的滑块工具(例如,每 150px 宽,添加一个图像)。添加大量 UIImageView 后,我遇到了内存问题。

有没有更好、更有效的方式在屏幕上显示图像?

【问题讨论】:

  • 你会在屏幕上同时显示所有这些图像吗?你是如何显示这些图像的,是滚动视图吗?请添加更多信息
  • 是的,它本质上是一堆 UIImageViews 添加到单个 UIView 中。我将 UIImageViews 子类化并添加触摸手势,以便它们可以旋转、捏合、拖动。

标签: ios objective-c uiimageview uiimage


【解决方案1】:

为什么不使用UICollectionView。它旨在以类似于UITableVIew 的方式呈现一组对象(包括图像)。就像一个 TableView 内存是由控制器自动管理的。

请参阅documentation 了解更多信息。

您没有在问题中明确说明您是如何使用这组图像的。另一种方法是使用 Core Graphics 将图像绘制到图形上下文中。这会将图像绘制到单个视图中,而不是多个视图中。只有一个位图可以保存在内存中。示例见Drawing a PNG Image Into a Graphics Context for Blending Mode Manipulation

【讨论】:

  • 感谢您的回复。我使用 UIImageView 的方式基本上是将一堆照片溅到屏幕上,让用户拖放并调整它们的大小,直到他们满意为止。我认为 UICollectionView 不合适,但您的其他建议可能有用并且会调查它。谢谢!
猜你喜欢
  • 2012-07-20
  • 2020-09-05
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
  • 2014-01-12
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
相关资源
最近更新 更多