UICollectionView的使用介绍
2015-08-18 08:57
453 查看
UICollectionView的使用介绍
使用的时候,需要包含
UICollectionViewDataSource,
UICollectionViewDelegate,
UICollectionViewDelegateFlowLayout这三个;
1、UICollectionView的初始化,这里cell及header采用的是xib文件
2、UICollectionView DataSource
3、UICollectionViewDelegateFlowLayout
4、UICollectionViewDelegate
使用的时候,需要包含
UICollectionViewDataSource,
UICollectionViewDelegate,
UICollectionViewDelegateFlowLayout这三个;
1、UICollectionView的初始化,这里cell及header采用的是xib文件
UICollectionViewFlowLayout *flowLayout=[[[UICollectionViewFlowLayout alloc] init] autorelease]; [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical]; self.collectionView=[[[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:flowLayout] autorelease]; self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; self.collectionView.dataSource=self; self.collectionView.delegate=self; [self.collectionView setBackgroundColor:[UIColor clearColor]]; self.collectionView.backgroundColor = [UIColor blackColor]; //注册Cell,必须要有 [self.collectionView registerNib:[UINib nibWithNibName:@"FileCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"FileCell"]; //注册HeaderView,根据需求 [self.collectionView registerNib:[UINib nibWithNibName:@"FileCollectionReusableView" bundle:nil] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"FileCollectionReusable"]; [self.view addSubview:self.collectionView];
2、UICollectionView DataSource
#pragma mark -- UICollectionViewDataSource //定义展示的UICollectionViewCell的个数 -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return 10; } //定义展示的Section的个数 -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 2; } - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { FileCollectionReusableView *reusableview = nil; if (kind == UICollectionElementKindSectionHeader) { reusableview = (FileCollectionReusableView*)[collectionView dequeueReusableSupplementaryViewOfKind :kind withReuseIdentifier:@"FileCollectionReusable" forIndexPath:indexPath]; // header view 处理代码 } return reusableview; } //每个UICollectionView展示的内容 -(CHFileCollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { static NSString * CellIdentifier = @"FileCell"; FileCollectionViewCell * cell = (FileCollectionViewCell*)[collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath]; // cell 的显示处理 return cell; }
3、UICollectionViewDelegateFlowLayout
//返回头headerView的大小 -(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{ CGSize size= CGSizeMake(self.view.frame.size.width, 30); return size; } //定义每个UICollectionView 的大小 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { CGFloat collectionCellWidth = (self.view.frame.size.width - 5 * 6)/3; return CGSizeMake(collectionCellWidth, collectionCellWidth+30); } //定义每个UICollectionView 的 margin -(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { return UIEdgeInsetsMake(5, 5, 5, 5); }
4、UICollectionViewDelegate
//UICollectionView被选中时调用的方法 -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { } //返回这个UICollectionView是否可以被选择 -(BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath { return YES; }
相关文章推荐
- UICollectionView的使用介绍
- nyoj 1100 WAJUEJI which home strong!
- UI导航控制器-----连载七
- Implementing Queue using Stacks
- Implementing Stacks Using Queues
- KVC中setValuesForKeysWithDictionary:
- UIImage尺寸调节
- UIActivityIndicatorView的详细使用
- Codeforces Round #316 (Div. 2) D. Tree Requests 树 离线在线 算法
- Round #313 (Div. 2) D. Equivalent Strings-大水题递归
- SPOJ-QTREE2 Query on a tree II(暴力+LCA)
- 为什么GUI框架都使用单线程
- OC学习笔记21--OC中集合类的读写文件操作及NSData与NSValue
- suid验证
- 纯UILabel实现文字的竖排显示 记录
- Codeforces Gym 100431G Persistent Queue 可持久化队列
- 自己用反射写的一个request.getParameter工具类
- iOS UI基础-1.0加法计算器
- request.startAsync()不支持异步操作
- codeforces Gym 100431G Persistent Queue