UICollectionView

摘要:
1集合视图的创建1.1必须要先初始化一个布局self.layout=[[UICollectionViewFlowLayoutalloc]init];(或者自己自定义的布局)1.2再初始化集合视图本身self.collectionV=[[UICollectionViewalloc]initWithFrame:[UIScreenmainScreen].boundscollectionViewLayou

1 集合视图的创建

1.1 必须要先初始化一个 布局

self.layout = [[UICollectionViewFlowLayout alloc] init];

(或者自己自定义的布局)

1.2 再初始化集合视图本身

self.collectionV = [[UICollectionView alloc] initWithFrame:[UIScreen mainScreen].bounds collectionViewLayout:self.layout];

1.3 可以设置集合视图布局的一些属性 如滚动方向 等

self.layout.scrollDirection = UICollectionViewScrollDirectionVertical;//垂直方向

2 设置集合视图的 其他属性 代理的方法实现

2.1 首先接受协议 数据源协议和代理

<UICollectionViewDataSource,UICollectionViewDelegate>

2.2 接受两个协议

self.collectionV.dataSource = self;//数据源代理 self.collectionV.delegate = self;//协议代理

2.3 协议中有必须实现的两个方法(集合视图的每个分区的item的个数,和 cell的 设置)

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

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

2.4 创建自定义的cell 首先需要注册

[self.collectionV registerClass:[MyCollectionViewCell class] forCellWithReuseIdentifier:@"reuse"];

3 需要设置 集合视图的布局属性

3.1//设置分区的个数

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView

3.2 设置代理里的方法 集合视图的行宽 列宽

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;//每个item的大小

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;//设置行宽

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;//设置列宽

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;//上左下右的尺寸

3.3 还可以设置 每个item点击执行的方法

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath;

4 设置 集合视图的增广视图

4.1 首先需要创建一个自定义的增广视图

UICollectionReusableView//继承自这个类

4.2 设置 增广视图的方法

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

4.3 设置增广视图的尺寸

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section;

4.4 需要注册增广视图的方法

[self.collectionV registerClass:[MyCollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header"];

总结:collectionView 集合视图的使用 有三个协议,其中布局的协议 集合视图的代理协议(delegate)代理包含了指定代理人;列外 注册cell和增广视图的方法不一样,应该注意;

还有在自定义增广视图是,设置内部的控件的frame是注意,尺寸的选取,应该是参考 self.bounds。。

免责声明:文章转载自《UICollectionView》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Phaser3 游戏开发入门——自定义构建Phaser库Apktool下载与安装 windows环境下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IOS开发之UIColectionView

      UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。      使用UICollectionView 必须实现UICollectionView...

iOS 流布局 UICollectionView使用(UICollectionVIew的代理方法)

UICollectionViewDataSource协议 这个协议主要用于collectionView相关数据的处理,包含方法如下:设置分区数(这个是可选实现的) - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView; 设置每个分区有多少个item(...

一个巧妙的实现悬浮的tableViewHeader的方法

之前因为工作需要要实现一个类似的 悬浮+视差的headerView的效果, 研究了好久没研究出来怎么做,最后用UICollectionView +CSStickyHeaderFlowLayout的方法实现了(不得不说CSStickyHeaderFlowLayout真的是一个很强大的库,作者对UICollectionView的理解真的是深刻,建议有空一...