如果项目具有动态大小,如何在集合视图中拥有单个水平行项目?

时间:2017-03-18 00:31:21

标签: ios swift uicollectionview uicollectionviewcell flowlayout

我试图从服务器中提取未知数量的列表,并且我有一个集合视图,每个列表都有一个单元格/项目。每个单元格都有一个标签,其中包含List的名称。由于我不知道标签的长度,我制作了单元格动态大小,并在我的UICollectionViewFlowLayout上设置了以下属性:

flowLayout.estimatedItemSize = CGSize(width: 100, height: 100)
flowLayout.minimumInteritemSpacing = 11
flowLayout.minimumLineSpacing = 12

细胞本身的大小很好,我在标签上使用了自动布局,因此细胞基于内在大小。但我的问题是,我要么获得多行项目,要么我会得到一个滚动远远超出我的项目的行,直到右侧有空白空间。当我更改minimumInteritemSpacing的值时,我得到了这两个结果。有更好的方法吗?

我想做的就是拥有一个动态数量的"按钮"或单元格(基于拉出的列表数)和动态宽度(基于列表名称)并在单行中水平滚动。 具有列表名称的每个单元格将像一个按钮,在选择时会使用列表属性更新多个字段。

1 个答案:

答案 0 :(得分:0)

您可以使用- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath方法来实现每个单元格的大小。