UICollectionView显示header和footer

在使用collectionView时,想做个分组,需要显示header,但是发现,显示header和footer的回调方法不执行,不懈追踪,终于找到原因!!!!!!!

layout.headerReferenceSize = CGSizeMake(100, 22);//重要,写上该行代码后,显示header和footer的回调方法成功执行,最终成功显示header

现在记录一下CollectionView的使用过程

初始化:

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];

 [layout setScrollDirection:UICollectionViewScrollDirectionVertical];

layout.headerReferenceSize = CGSizeMake(100, 22);

UICollectionView *dataListcollectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 64,self.view.frame.size.width,260) collectionViewLayout:layout];

[dataListcollectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"];//注册cell

[dataListcollectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header"];//注册header的view

dataListcollectionView.delegate = self;

dataListcollectionView.dataSource = self;

[self.view addSubview:dataListcollectionView];

设置代理方法

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView

{

return 1;

}

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section

{

return [dataArray count];

}

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

{

UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];

return cell;

}

//显示header和footer的回调方法

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath

{

if (kind == UICollectionElementKindSectionHeader)

 {//如果想要自定义header,只需要定义UICollectionReusableView的子类A,然后在该处使用,注意AIdentifier要设为注册的字符串,此处为“header”

UICollectionReusableView *view = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:@"header" forIndexPath:indexPath];

return view;

}

return nil;

}

//设置元素大小

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{

return CGSizeMake(100,100);

}

时间: 2024-10-16 19:05:20

UICollectionView显示header和footer的相关文章

怎样在UICollectionView中添加Header和footer

---恢复内容开始--- 怎样在UICollectionView中添加Header和footer 转载于http://my.oschina.net/zboy/blog/221525 摘要 来自-http://www.appcoda.com/supplementary-view-uicollectionview-flow-layout/ iOS UICollectionViewController 目录[-] Tweak the Margin of Your Content using Secti

StroyBoard中UICollectionView中添加Header和footer

到Storyboard中,选择collection view controller中的"Collection View".在Attributes inspector中,选择"Section Header"和"Section Footer",一旦选中你就会在屏幕中看到下面的的显示: 最重要的是,我们必须为header和footer view指定一个标识符.这个标示符将会被用于代码识别图片名称.在Atteributes inspector中设置hea

UICollectionView Header 和Footer

@interface FooterView : UICollectionReusableView Footer  和 Header  基于  UICollectionReusableView 重用标识 static NSString * headeridentifier = @"header";static NSString * footeridentifier = @"FOOTER"; 注册重用标识符 第一个参数 : 返回的view类型     第二个参数: 设置

你必须了解的RecyclerView的五大开源项目-解决上拉加载、下拉刷新和添加Header、Footer等问题

前段时间做项目由于采用的MD设计,所以必须要使用RecyclerView全面代替ListView.但是开发中遇到了需要实现RecyclerView上拉加载.下拉刷新和添加Header以及Footer等需求问题,现将问题解决中用到的五大开源项目总结下来,方便他人. 首先介绍下RecyclerView,RecyclerView相比ListView增加了很多新特性: ? Adapter中的ViewHolder模式 - 对于ListView来说,通过创建ViewHolder来提升性能并不是必须的.因为L

delphi xe6 android ListView增加 Header或Footer 的方法

var  Item1: TListViewItem;begin    Item1 := ListView1.Items.Add;    Item1.Purpose:=TListItemPurpose.Header;//    Item1.Purpose:=TListItemPurpose.Footer;    Item1.text:=' xxxx';//Header或Footer显示的内容end; delphi xe6 android ListView增加 Header或Footer 的方法,布

CollectionView Header And Footer 的使用

CollectionView Header And footer 的添加和设置 建议先看CollectionView 第一篇:http://www.jianshu.com/p/a1614404ae96 注册Header 和 Footer p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px M

easy Html5 - Jquery Mobile之ToolBars(Header and Footer)

jquery 在web js框架上的风暴还在继续却也随着移动终端走向了mobile:那么jquery mobile到底包括些什么呢 简介工具栏是在移动网站和应用中的头部,尾部或者内容中的工具条:Jquery Mobile提供了一套标准的工具和导航栏的工具,可以在绝大多数情况下直接使用:头部一般做网站或应用的标题,功能导航等,一般都是些文字或者按钮:尾部是一个页面的最下端,内容可以根据具体应用需要来排版,也可以放功能导航.各种链接等:内容中使用一般是作为功能的展示,显示内容同时附带着功能:jque

html5新特性-header,nav,footer,aside,article,section等各元素的详解

Html5新增了27个元素,废弃了16个元素,根据现有的标准规范,把HTML5的元素按优先级定义为结构性属性.级块性元素.行内语义性元素和交互性元素四大类. 下面是对各标签的详解,section.header.footer.nav.article.aside.figure.code.dialog.meter.time.progress.video.audio.details.atagrid.menu.command的 介绍 结构性元素主要负责web上下文结构的定义 <section>:在 we

RecyclerView添加Header和Footer

使用过RecyclerView的同学就知道它并没有添加header和footer的方法,而ListView和GirdView都有,但是开发过程中难免有需求需要添加一个自定义的header或者footer,或者不同布局的Item. 好了,我们知道如果在ListView中要添加不同的布局的item,都是通过重写getItemViewType()和getViewTypeCount()这两个方法来控制的,OK,对于RecyclerView,还是用这个方法来做,分别对不同的Item用不同的flag标记,然