我想在我的UICollectionView中有几个部分。在一个部分中应该有保存文本的项。使用“经典”collectionView方法,在同一行中显示的项的计数取决于项的宽度。collectionView只在项无法放入同一行时添加新行。因此,有些行可能有5项,有些行可能有3项。如下所示:
当我使用组合布局时,我需要指定条目数。实际上我希望集合视图关注几个部分的条目数。使用UICollectionViewCompositionalLayout可以做到这一点吗?
42fyovps1#
顶级域名注册商
如果在合成布局中仅使用一个NSCollectionLayoutItem对象(看起来您就是这样),则使用以下方法之一创建布局组(取决于希望布局流向的方向):
NSCollectionLayoutGroup.horizontal(layoutSize:subitems:) NSCollectionLayoutGroup.vertical(layoutSize:subitems:)
将NSCollectionLayoutItem对象作为subItems数组中的唯一项放置。当布局集合视图时,将使用您在UICollectionViewDataSource的(_:numberOfItemsInSection:)中指定的项数来布局您的项。
subItems
(_:numberOfItemsInSection:)
稍长
我假设您指的是NSCollectionLayoutGroup.horizontal(layoutSize:subitem:count:)之类的方法,如果是这样,那么您可能误解了这里的count参数的含义。在使用不同NSCollectionLayoutItem对象(具有不同大小/布局)的组合的情况下,此处的count参数表示您希望该组 * 中有多少个该项用于布局 *。加载/重新加载集合视图时,无论您为UICollectionViewDataSource的(_:numberOfItemsInSection:)提供什么计数,都将仍然呈现-如果该计数高于您在组合布局中指定的计数,则将创建新组(遵循您的布局)以容纳额外的项。
NSCollectionLayoutGroup.horizontal(layoutSize:subitem:count:)
count
2j4z5cfb2#
首先感谢您抽出时间。我想让单元格的大小沿着x轴(宽度)动态变化,然后UIKit应该尽可能多地放在一行中。似乎计数指示了一行中可以包含的固定项目数。这是我代码
func generateLayout() -> UICollectionViewLayout { let itemSize = NSCollectionLayoutSize( widthDimension: .estimated(100), heightDimension: .absolute(20)) let fullPhotoItem = NSCollectionLayoutItem(layoutSize: itemSize) let groupSize = NSCollectionLayoutSize( widthDimension: .fractionalWidth(1), heightDimension: .estimated(20)) let group = NSCollectionLayoutGroup.horizontal( layoutSize: groupSize, subitem: fullPhotoItem, count: 1) let section = NSCollectionLayoutSection(group: group) let layout = UICollectionViewCompositionalLayout(section: section) return layout }
2条答案
按热度按时间42fyovps1#
顶级域名注册商
如果在合成布局中仅使用一个NSCollectionLayoutItem对象(看起来您就是这样),则使用以下方法之一创建布局组(取决于希望布局流向的方向):
将NSCollectionLayoutItem对象作为
subItems
数组中的唯一项放置。当布局集合视图时,将使用您在UICollectionViewDataSource的
(_:numberOfItemsInSection:)
中指定的项数来布局您的项。稍长
我假设您指的是
NSCollectionLayoutGroup.horizontal(layoutSize:subitem:count:)
之类的方法,如果是这样,那么您可能误解了这里的count
参数的含义。在使用不同NSCollectionLayoutItem对象(具有不同大小/布局)的组合的情况下,此处的
count
参数表示您希望该组 * 中有多少个该项用于布局 *。加载/重新加载集合视图时,无论您为UICollectionViewDataSource的
(_:numberOfItemsInSection:)
提供什么计数,都将仍然呈现-如果该计数高于您在组合布局中指定的计数,则将创建新组(遵循您的布局)以容纳额外的项。2j4z5cfb2#
首先感谢您抽出时间。
我想让单元格的大小沿着x轴(宽度)动态变化,然后UIKit应该尽可能多地放在一行中。似乎计数指示了一行中可以包含的固定项目数。
这是我代码