iOS开发基础:UICollectionView 基本使用-纯代
2016-08-03 本文已影响1253人
溪石iOS
UICollectionView 可以看做 UITableView 的升级版,这里介绍其基本的使用方法,为复杂的视图打好基础。
新建一个iOS 项目
打开模板自动生成的 ViewController.m 文件,添加 UICollectionView 成员变量
声明数据源 UICollectionViewDataSource 和 代理 UICollectionViewDelegate

初始化 collectionView,指定其 CollectionViewLayout 为 UICollectionViewFlowLayout

这是UICollectionView 与 UITableView 最大的不同:用 UICollectionViewLayout 单独控制 cell 的展示形态,如大小、滚动方向等,本例用框架提供的 UICollectionViewFlowLayout,我们可以直接继承UICollectionViewLayout,打造自己需要的布局样式。
注册单元格的类型为 UICollectionViewCell
如果子类化 UICollectionViewCell,这里可指定对应类。

实现数据源的“三大问题”:
-
有多少个章节(Section),如果省略,默认为1
-
每个章节中有多少个单元格(Cell)
注意,这里返回的是每个章节的单元格数量,当有多个章节时,需要判断 section 参数,返回对应的数量。
-
实例化每个单元格
使用 dequeueReusableCellWithReuseIdentifier 方法获得“复用”的单元格实例
返回的 cell 依赖第5步中注册单元格类型,识别符 “DemoCell”也需要与第5步中一致,否则,这里将返回 nil,导致崩溃。
这里可以配置每个单元格显示内容,如单元格标题等。
编译运行后可看到一个基本的 CollectionView 已经显示,并有 10 个单元格。
