第二个参数 : cell 的布局
UICollectionViewFlowLayout * flowLayout = [[UICollectionViewFlowLayout
alloc]init];
滚动方向:
flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal ;

行间距(最小)
flowLayout.minimumLineSpacing = 0;

列间距(最小)
flowLayout.minimumInteritemSpacing = 30;

item大小
flowLayout.itemSize = CGSizeMake(40, 30);

setcion 的边距
flowLayout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10);

header 大小
flowLayout.headerReferenceSize = CGSizeMake(320, 20);

footer大小
flowLayout.footerReferenceSize = CGSizeMake(320, 20);







创建集合视图

UICollectionView * cView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, 320, 568 ) collectionViewLayout:flowLayout];
cView.dataSource = self; 设置 dataSource 代理
cView.delegate = self; 设置delegate 代理
[self.view addSubview:cView];


集合视图cell 的数量

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 100;
}


集合视图 设定 cell

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MyCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellidentifier forIndexPath:indexPath];
cell.backgroundColor = [UIColor redColor];
cell.textLavel.text = [NSString stringWithFormat:@"%ld",(long)indexPath.row];

return cell;
}


Header 和 Footer 设置


- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {

HeaderView * headerView = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:headeridentifier forIndexPath:indexPath];
return headerView;
}

FooterView * footerView = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:footeridentifier forIndexPath:indexPath];

return footerView;

}


点击Collection 的cell 时 触发 此方法

#pragma mark - UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{

}