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 标头重复每一行的主要内容,如果未能解决你的问题,请参考以下文章