iOS Collection 视图单元格更新延迟
Posted
技术标签:
【中文标题】iOS Collection 视图单元格更新延迟【英文标题】:iOS Collection view cell update is delaying 【发布时间】:2014-01-24 17:56:42 【问题描述】:我有样本收集视图。我是 dequeueReusableCellWithReuseIdentifier:forIndexPath:
的出列单元格
当加载 ViewController 时,OS 将 5 个单元出队并在其上加载信息。
当我滚动时,另外 5-7 个单元被出列并在其上加载信息。
第二组加载的单元格与来自第一组加载的单元格的信息一起进入前台,并且其中的信息在不到半秒后更新为新的(右)一个。
我将prepareForReuse
用于单元格,我在其中重置所有单元格组件的可见性,然后加载新信息,但结果不是我所期望的,这是我上面描述的。
有什么建议吗? 谢谢。
编辑:好吧,如果我使用来自 dequeueReusableCellWithReuseIdentifier:forIndexPath:
的数据更新单元格视图,一切正常,但如果我将数据传递给单元格并要求单元格修改自身 - 比我上面指出的问题。
编辑 2:已解决。正如我想象的那样 - 这是愚蠢的错误。作为对其他人的建议 - 确保在任何情况下都将数据传递给单元格。
【问题讨论】:
有什么理由不更新cellForItemAtIndexPath:
中的内容?
我正在使用 cellForItemAtIndexPath:
使单元格出列并设置所需的信息。您的意思是我需要从 cellForItemAtIndexPath:
执行当前在 prepareForReuse
中的逻辑,然后设置所需的信息?
这就是我的意思。抛弃prepareForReuse
并将代码移至cellForItemAtIndexPath
。
我将代码从“prepareForReuse”移动到“resetCellUI”之类的代码,并从“cellForItemAtIndexPath:”调用它,结果没有变化。该效果仅观察一次(当操作系统缓存信息时)。第一次后,所有单元格都正确加载。
【参考方案1】:
cellForItemAtIndexPath 中有 ALLOC 语句吗?或者如果使用子类,您在子类实现中有任何 ALLOC 吗?可能您看到未清除的 ui 元素。
【讨论】:
不,这里是单元格初始化 'MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:myIde forIndexPath:indexPath]; ' 单元格视图在 .xib 文件中,我对它们的 IBOutlets 很弱。以上是关于iOS Collection 视图单元格更新延迟的主要内容,如果未能解决你的问题,请参考以下文章
IOS Collection 视图单元格第一次单击并在视图出现时删除选择
如何在 iOS 中避免/禁用 Collection View 的垂直滚动
如何在 Collection 视图中为每个单元格添加 edgeInsets -Swift