gpt4 book ai didi

swift - 我怎样才能在需要之前将 Collection View Cells deque,因为第一次 deque 是滞后的

转载 作者:搜寻专家 更新时间:2023-10-31 22:54:22 25 4
gpt4 key购买 nike

好的,我正在实现一个与 Apple 的日历应用程序非常相似的日历。我的 UICollectionView 中有多种类型的单元格。我有垂直线单元格、水平线单元格、现在线单元格和事件单元格。

每当我滚动时,第一次出现一个单元格时,都会出现一些小故障、滞后、延迟,不管怎么说。

作为 POC,我创建了这个测试用例:创建2天。一个从 00:00 到 05:00 有 5 个事件,从 17:00 到 22:00 有 5 个事件。第二天从17:00到22:00只有5场比赛。第一天也有早上的事件,滚动到 17:00-22:00 的事件不会延迟。第二个是。

此外,行单元格完全没有延迟,因为它们出现在 collectionView 的每一帧中。

这让我想到了这个问题——我想让单元格在滚动之前进行双端队列——所以我知道不在屏幕上的单元格(但一旦用户滚动就会出现)的双端队列数量是一旦用户滚动,collectionView 将高效地重用它们。

我不确定的天真方法是这样的:

ViewDidLoad() 中运行如下代码:

(0...10).forEach { num in
calendarCollectionView.dequeueReusableCell(withReuseIdentifier: "UserEventCollectionViewCell", for: IndexPath(item: num, section: 3)) //3 is my events section
}

这会导致崩溃:

Thread 1: EXC_BAD_ACCESS (code=1, address=0xae106)

我怎样才能做到这一点?或者有什么更好的方法吗?

一些截图:

在屏幕截图中 - 包含线路和时间的区域是一个包含的 VC,它与问题相关(在标签“星期一,...”下)

this area doesn't lag

this area lags

最佳答案

好的 - 这太疯狂了。我们发现我们滞后的原因仅仅是因为我们有太多的打印输出到控制台。我们删除了它们,现在一切都很顺利。这不是对我的问题的直接回答,但它让我明白了——当你认为你需要预加载 nib 文件以提高平滑度时——你实现中的其他原因是滞后的原因,你应该找到它而不是破解

关于swift - 我怎样才能在需要之前将 Collection View Cells deque,因为第一次 deque 是滞后的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52054527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com