从 UIScrollview 应用程序中的文档目录加载 50 多张图像崩溃
Posted
技术标签:
【中文标题】从 UIScrollview 应用程序中的文档目录加载 50 多张图像崩溃【英文标题】:Loaded 50+ images from document directory in UIScrollview app get crash 【发布时间】:2017-02-06 11:00:36 【问题描述】:从 UIScrollview 应用程序中的文档目录加载 50 多张图像会崩溃。获取“与资产的连接被中断或资产死亡(带有内存警告)”。任何人都可以建议加载这些图像的最佳方法吗?提前致谢。我的代码在 Objective-C 中。
【问题讨论】:
为什么需要将它们全部加载到内存中?你不能只加载那些正在显示的吗?使用UICollectionView
或UITableView
将有助于完成这项任务。
【参考方案1】:
在您的情况下显示图像的最佳选择是使用 UITableView 或 UICollectionView,因为当它们不再显示在屏幕上时,它们会在内部使单元格出列。 . 在您的情况下,UIScrollView 不会将其子视图出列,因此屏幕始终包含图像,这会消耗更多内存,并且由于内存使用过多,操作系统会关闭(崩溃)您的应用程序。
【讨论】:
现在,当我在 UICollectionView 中滚动时有 20 到 30 张图像时,我正在使用 UICollectionView。我收到了内存警告。请尽快提出建议。 您能分享一下您希望使用 CollectionView 实现的输出吗? (提供一些你需要的布局截图) “内存警告”的主要原因之一可能是图像的大小。如果图像非常大,可能会占用大量内存。您可能需要先压缩图像,然后再将它们显示在集合视图中。【参考方案2】:你应该使用 UITableView 而不是 UIScrollView。 但是,如果它们是非常大的图像,则仅加载一张图像就会崩溃,除非对其进行预处理(调整大小)。
【讨论】:
以上是关于从 UIScrollview 应用程序中的文档目录加载 50 多张图像崩溃的主要内容,如果未能解决你的问题,请参考以下文章
从 UICollectionViewCell 到 UIScrollView 中的正确位置
如何从 Apple 的示例中实际实现分页 UIScrollView?
嵌套在 UIScrollview 中的 ViewController 中的 presentModalViewController?
在 iOS 13 中关闭 UIScrollView 指示器清理