在UICollectionView中连续显示不同数量的单元格

时间:2014-02-08 18:59:43

标签: ios objective-c uicollectionview

我想要UICollectionView,在第一行中有一个包含所有行宽度的单元格,第二行有3个单元格。 我研究了文档,但我无法做到。像这样:

enter image description here

提前致谢

1 个答案:

答案 0 :(得分:12)

在故事板中的集合视图中制作2个Cell原型,并设置它们重用标识符

在ViewController的.m文件中实现此功能

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{        
    return 1;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return 6;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell;

    if (/*condition for small cell*/)// e.g.    indexPath.row % 3 != 0
        cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"smallCell" forIndexPath:indexPath];
    else
        cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"bigCell" forIndexPath:indexPath];


    return cell;
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    if (/*condition for small cell*/) // e.g.    indexPath.row % 3 != 0
        return CGSizeMake(65, 50);

    return CGSizeMake(318, 50);
}

完成此操作后,您将拥有以下内容:

enter image description here