如何解决UICollectionViewDiffableDataSource可选部分
我正在尝试使用可扩散数据源实现集合视图。我有一些可选的广告,我想将其放置在集合视图的单独部分中(用于特定的布局等)。我的部分如下所示:
enum Section: Int,CaseIterable {
case topSection
case midSection
case advertismentSection
case bottomSection
}
advertismentSection中项目的高度定义如下:
let heightDimension = NSCollectionLayoutDimension.estimated(200)
然后将此heightDimension用于组高度等。
当我将项目添加到advertismentSection
时,这很好用,但是,当它为空时,我认为它的高度应该为0,但不是这样,无论它是否为空,它的高度都是200。尝试将高度设置为0时,我收到一条警告,指出它无效。
我尝试的另一种方法是在没有内容可显示时不将advertismentSection添加到快照中,但这会使应用程序崩溃,因为快照中的节数必须与您的Section枚举中定义的相同。 / p>
我应该如何解决这个问题?
解决方法
有两种方法可以通过枚举附加部分:
1. snapshot.appenSections(Section.allcase)
2. snapshot.appenSections([topSection,.midSection,. bottomSection])
如果你已经应用了快照并且你想要不同的部分,那么你必须应用新的快照:
var snapshot = NSDiffableDataSourceSnapshot<section,row>
snapShot.appendSection([[topSection,. bottomSection]])
dataSource.apply(snapshot)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。