gpt4 book ai didi

swift - iOS - UICollectionView - 一次插入多个项目时,如何将它们一个接一个地淡入淡出而不是同时淡入淡出?

转载 作者:搜寻专家 更新时间:2023-10-30 23:08:01 25 4
gpt4 key购买 nike

当您有一个 Collection View 并且您通过插入一些来更改项目时,默认布局会同时淡入它们。是否有可能将它们一个接一个地淡入淡出?

我正在考虑子类化 UICollectionViewLayout,但我不确定那样是否可行。

我真的必须添加逻辑以便不会同时发生多个插入吗? (所以我插入一个项目,等一下,插入第二个项目,......手动完成)必须有更好的方法。我希望

感谢您的帮助

最佳答案

如果您想一次将它们淡入淡出,则必须将一个添加到您的模型并重新加载该项目,然后延迟(例如 asyncAfter)并执行下一个.请注意,您不能一次将所有这些添加到您的模型中,而只是推迟重新加载 Collection View 的各个项目。您必须推迟模型的更新和 Collection View 中相应项目的重新加载。例如:

private func append(_ objectsToAdd: [Foo]) {
for i in 0 ..< objectsToAdd.count {
DispatchQueue.main.asyncAfter(deadline: .now() + Double(i) * 0.25) {
self.objects.append(objectsToAdd[i])
self.collectionView?.insertItems(at: [IndexPath(item: self.objects.count - 1, section: 0)])
}
}
}

产生:

enter image description here

不需要 UICollectionViewLayout 的子类化。

关于swift - iOS - UICollectionView - 一次插入多个项目时,如何将它们一个接一个地淡入淡出而不是同时淡入淡出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639188/

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