#import "ViewController.h"
#import "myCollectionCell.h"
#import "myCollectionHeadView.h"
#import "myCollectionFooterView.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
_allArr = [[NSMutableArray alloc]initWithObjects:@"01.jpg",@"02.jpg",@"03.jpg",@"04.jpg",@"05.jpg",@"06.jpg",@"07.png",@"08.png",@"09.jpg",@"10.jpg",@"11.jpg", nil];
self.view.backgroundColor = [UIColor grayColor];
self.mainView = [UIView new];
self.mainView.frame =self.view.frame;
[self.view addSubview:_mainView];
[self addCollectionView];
}
// 添加 collectionView
-(void)addCollectionView
{ // 创建布局
UICollectionViewFlowLayout *layout =[[UICollectionViewFlowLayout alloc]init];
//布局 水平 与垂直方式 默认是垂直
// layout.scrollDirection= UICollectionViewScrollDirectionHorizontal; // default is UICollectionViewScrollDirectionVertical
// 创建CollectionView
_CollectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 30,IPHONE_WIDTH , IPHONE_HEIGHT-50) collectionViewLayout:layout];
// // 设置头部
// [layout setHeaderReferenceSize:CGSizeMake(_CollectionView.bounds.size.width, 30)];
//
// // 设置尾部
//
// [layout setFooterReferenceSize:CGSizeMake(_CollectionView.bounds.size.width, 30)];
// 两个代理
_CollectionView.dataSource =self;
_CollectionView.delegate = self;
// 现实下滑滚动条 默认是 yes
_CollectionView.showsVerticalScrollIndicator = YES;
_CollectionView.alwaysBounceVertical = YES;
// _CollectionView.alwaysBounceHorizontal= YES;
_CollectionView.bounces =YES; // 是否反弹 默认是 yes
// 注册单元格 代码与xib
[_CollectionView registerClass:[myCollectionCell class] forCellWithReuseIdentifier:@"cell"];
// [_CollectionView registerNib:<#(UINib *)#> forCellWithReuseIdentifier:<#(NSString *)#>]
// 注册头部 代码与xib
[ _CollectionView registerClass:[myCollectionHeadView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView"];
// [_CollectionView registerNib:<#(UINib *)#> forSupplementaryViewOfKind:<#(NSString *)#> withReuseIdentifier:<#(NSString *)#>]
// 注册尾部
[_CollectionView registerClass:[myCollectionFooterView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"FooterView"];
_CollectionView.backgroundColor = [UIColor colorWithRed:0.466 green:1.000 blue:0.306 alpha:1.000];
[self.mainView addSubview:_CollectionView];
}
#pragma mark ---CollectionViewDataSource
// 分区单元格数
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return _allArr.count;
}
// 单元格 内容
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
myCollectionCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
cell.imgView.image=[UIImage imageNamed:_allArr[indexPath.row]];
return cell;
}
//- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
//{
//
//}
// 设置 补充元素 ---头尾内容
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
UICollectionReusableView * reusebleView = nil;
if (kind ==UICollectionElementKindSectionHeader)
{
myCollectionHeadView * HeaderView =[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath];
HeaderView.titlelable.text = @"collectionView 的头";
reusebleView =HeaderView;
}
else
if (kind ==UICollectionElementKindSectionFooter)
{
myCollectionFooterView * FooterView =[collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"FooterView" forIndexPath:indexPath];
FooterView.titlelable.text = @"collectionView 的 尾";
reusebleView =FooterView;
FooterView.titlelable.frame = CGRectMake(0, 0, IPHONE_WIDTH, 20);
}
return reusebleView;
}
#pragma mark ---UICollectionViewDelegateFlowLayout 布局设置
/**
- (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;
- (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;
*/
// 每个cell 的 尺寸
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake(100, 150);
}
// 最小的 行间距
-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
{
return 5;
}
// 最小的列间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
{
return 0;
}
// 头的尺寸
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
{
return CGSizeMake(IPHONE_WIDTH, 20);
}
// 尾的尺寸
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section
{
return CGSizeMake(IPHONE_WIDTH, 20);
}
// section 的内边距 设置 上/左/下/右 边距
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(10, 10, 10, 10);
}
#pragma mark ------UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
}
@end