加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – iOS – UICollectionView – 一次插入多个项目时,你怎

发布时间:2020-12-14 04:40:41 所属栏目:百科 来源:网络整理
导读:如果您有一个集合视图并且您通过插入几个来更改项目,则默认布局会同时淡出它们.是否有可能一个接一个地淡化它们? 我在考虑子类化UICollectionViewLayout,但我不确定这是否会像那样工作. 我是否真的必须添加逻辑,以便不会同时发生多个插入? (这样我插入一个
如果您有一个集合视图并且您通过插入几个来更改项目,则默认布局会同时淡出它们.是否有可能一个接一个地淡化它们?

我在考虑子类化UICollectionViewLayout,但我不确定这是否会像那样工作.

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

谢谢你的帮助

解决方法

如果你想一次淡出它们,你将不得不在模型中添加一个并重新加载那个项目然后延迟(例如asyncAfter)并执行下一个项目.请注意,您不能一次将所有这些添加到模型中,只需延迟重新加载集合视图的各个项目.您必须推迟模型的更新和重新加载集合视图的相应项.例如.:

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的子类化.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读