当前位置: 首页 > 知识库问答 >
问题:

UICollectionView在内存中加载了多少?

壤驷瑾瑜
2023-03-14

我有一个UICollectionView,里面充满了图像、视频和声音字节。一切顺利!然而,我对带宽的使用感到关切。

我不确定使用出列可重用单元格的UICollectionView是如何工作的,也不确定这些项目何时从存储下载。

假设我有一个简单的牢房。

selfieCell.imageView.sd_setImage(with: URL(string: message.stringOrKey), completed: nil)
return selfieCell

为了回答我的问题,假设我在集合视图单元格中有100个单元格,每次只显示3个单元格。

  • 加载UICollectionView时是否加载所有100个图像?
  • 还是UICollection视图等待单元格将要显示以设置图像(从而下载文件?)

谢谢你的帮助。

共有1个答案

吴正祥
2023-03-14

每次只显示3个单元格

当您滚动CellForItemat时,加载的单元格仅为可见的单元格,而当您再次向上滚动时,其他单元格将从隐藏在顶部的单元格中分离出来

同样,当相关单元格再次显示时,缓存映像(如sdwebimage)不会再次从服务器加载它

 类似资料:
  • 我一直在测试许多开源动画-GIF库,以便将文件加载到我们的项目中。 它们中的大多数声称是高性能库,然而,每当我加载动画gif时,我的应用程序就会使用大约8MB的内存。 问题是,这个专用内存空间似乎永远不会被释放。我们可以看到它线性增长: 这让我怀疑我在这里做的是否正确。这种行为是正确的,还是对用户有潜在的不良影响?

  • 问题内容: 说我有这个表情 我知道,串池“允许运行时以节省内存在一个池保留不变的字符串” 字符串池 字符串池中将创建多少个字符串? 我最初的猜测是5 -,,,,,因为操作顺序的级联(左到右?),或者是它只是最后的结果,“TomBradyGoat”,存储在字符串池? 问题答案: 在运行时,这段代码将转换为单个对象。编译器将在编译时进行串联,并在常量池中添加一个值。

  • 问题内容: 我的磁盘上只有168MB的文件。这只是一个逗号分隔的单词,id的列表。该单词的长度可以为1-5个字符。有650万行。 我在python中创建了一个字典,将其加载到内存中,因此我可以针对该单词列表搜索传入的文本。当python将其加载到内存中时,它显示已使用的1.3 GB RAM空间。知道为什么吗? 假设我的word文件如下所示… 然后再加上650万。然后,我遍历该文件并创建一个字典(p

  • 我有一个python程序,其中我需要加载和反序列化一个1GB的pickle文件。它需要一个良好的20秒,我想有一个机制,使腌菜的内容是随时可用的使用。我看过shared_memory,但是所有使用它的例子似乎都涉及到numpy,而我的项目没有使用numpy。使用或其他方式实现此目标的最简单、最干净的方法是什么? 这就是我现在(每次运行时)加载数据的方式: 我一直在使用,但对于一个包含许多文件的大型

  • 在服务器重置缓存数据保存在磁盘存储后。但在服务器启动后不使用缓存数据。所以我想加载磁盘存储内容到memory.How做到这一点?在这个堆栈问题加载EhCache磁盘存储内容到内存中使用BootstrapCacheLoaderFactory但不为我出现。

  • 我使用“mvn exec:java”运行我的程序: 我没有找到更改JVM的最大内存分配。 我试过-Dexec.commandlineArgs="..."但那不起作用...