UICollectionView 标头重复每一行

Posted

技术标签:

【中文标题】UICollectionView 标头重复每一行【英文标题】:UICollectionView header repeats every row 【发布时间】:2012-11-24 12:57:32 【问题描述】:

我正在继承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;

谢谢。

【问题讨论】:

我正在使用 UICollectionViewLayout 【参考方案1】:

我发现这个精彩绝伦的教程很有效! http://blog.radi.ws/post/32905838158/sticky-headers-for-uicollectionview-using

【讨论】:

【参考方案2】:

UICollectionView 没有 UITableView 那样的表头(据我所知),只有随内容滚动的节头。

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

【讨论】:

以上是关于UICollectionView 标头重复每一行的主要内容,如果未能解决你的问题,请参考以下文章

在SSRS中将Group标头放在组上方而不是旁边

保留对 UICollectionView 标头的引用

UICollectionView 标头未显示

无法使 UICollectionView 标头工作

Swift UICollectionView 标头未正确显示

在 UICollectionView 中使用 reloadData 时如何从重新加载中排除标头