UICollectionView标头重复每一行

时间:2012-11-24 12:57:33

标签: ios uicollectionview

我正在继承UICollectionViewController.

在我拥有的每一行单元格后,

UITableView标题重复。 我需要标题为“单一”并始终位于屏幕顶部(如导航栏)。

我正在使用以下代码: 我的UICollectionViewController课程:

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    return [categoryArray count] / 2;
}

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

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    CategoryCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CategoryCell" forIndexPath:indexPath];
    CategoryViewModel *category = [categoryArray objectAtIndex:(indexPath.section*2 + indexPath.row)];
    cell.name.text = category.name;
    cell.image.image = category.image;
    return cell;
}

-(UICollectionReusableView *) collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{
    if(headerIndexPath == nil){
        headerIndexPath = indexPath;
    }
    CategoryScreenHeader *categoryScreenHeader = [collectionView dequeueReusableSupplementaryViewOfKind:
                                         UICollectionElementKindSectionHeader withReuseIdentifier:@"CategoryScreenHeader" forIndexPath:headerIndexPath];
    categoryScreenHeader.headerName.text = @"Some title";
    categoryScreenHeader.headerImage.image = [UIImage imageNamed:@"step-0.png"];
    return categoryScreenHeader;
}

谢谢。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

UICollectionView没有像UITableView这样的表头(据我所知),只有与内容一起滚动的节头。

如果您希望屏幕顶部的视图停留在那里,那么您应该将2个子视图添加到控制器的视图中,一个用于标题,另一个用于集合视图。将集合视图插入到底部子视图中,而不是插入控制器的主视图中。删除collectionView中的代码:viewForSupplementaryElementOfKind:atIndexPath :(除非你想要节标题)。