UICollectionView 的应用 (集合视图)

#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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值