iOS开发UI阶段——第十五节 UICollectionView

2016-02-23  本文已影响189人  隔壁王叔不在家

集合视图的创建必须指定布局,如果没有布局,则显示不了任何东西,所以在创建集合视图对象之前必须先创建一个布局对象

采用系统布局类UICollectViewLayout(布局基类)

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

设置布局对象的相关属性

设置最小的行间距(默认是10)layout.minimumLineSpacing = 20;

设置item与item之间的间距layout.minimumInteritemSpacing = 10;

设置每个item的尺寸大小layout.itemSize = CGSizeMake((kWidth - 45) / 3, 100);

设置集合视图的分区间隔(上,左,下,右)layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10);

设置集合视图的滑动方向layout.scrollDirection=UICollectionViewScrollDirectionVertical;//竖向滚动

创建集合视图

UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:[UIScreen mainScreen].bounds collectionViewLayout:layout];

集合视图想要显示内容,必须将cell进行注册

[collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:string];

集合视图包含以下代理

UICollectionViewDataSource 数据源协议

UICollectionViewDelegate 代理协议  (其中的方法与UITableView的代理协议相似)

布局包含的代理

UICollectionViewDelegateFlowLayout

UICollectionViewDataSource协议包含的方法(前两个必须实现)

//设置每个分区包含的item个数

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

//设置每个需要显示的cell

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

//设置包含的分区个数

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView;

//设置增广视图,即每个分区的头视图或者尾视图

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

UICollectionViewDelegateFlowLayout协议包含的方法

//返回每个item的尺寸大小

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

//返回视图与屏幕边缘的距离

- (UIEdgeInsets)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;

//返回最小的行间距

- (CGFloat)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;

//返回item与item之间的距离

- (CGFloat)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;

//返回分区头视图的尺寸大小

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

//返回分区尾视图的尺寸大小

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

上一篇 下一篇

猜你喜欢

热点阅读