集合视图的四个组成部分:
单元格:它是集合视图中的一个单元格。
节:它是集合视图中的一个行数据,由多个单元格构成
补充视图:它是节的头和脚
装饰视图:集合视图中的背景图。
UICollectionView继承自UIScrollView。有两个协议:UICollectionViewDelegate委托协议和UICollectionViewDataSource数据源协议。
UICollectionViewCell是单元格类,它的布局是有UICollectionViewLayout类定义的,它是一个抽象类。UICollectionViewFlowLayout类是UICollectionViewLayout类的子类。对于复杂的布局,可以自定义UICollectionViewLayout类。UICollectionView对于的控制器是UICollectionViewController类。
UICollectionViewDataSource中的方法有四个:
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section;提供某个节中的列数目
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;为某个单元格提供显示数据
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView;提供视图中节的个数
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath;我补充视图提供显示数据
UICollectionViewDelegate中较为重要的方法:
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath;选择单元格后触发
- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath;不选泽单元格之后触发。