#import "ViewController.h"

#import "CustomViewCell.h"

#import "CollectionHeadView.h"

 

@interface ViewController ()<UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>

 @property (nonatomic, strong) UICollectionView *collectionView;

 @end

 

 @implementation ViewController

 #pragma mark - life Cycle

 

 - (void)viewDidLoad {

    [super viewDidLoad];

         self.title = @"HeaderCollectionView";

         self.automaticallyAdjustsScrollViewInsets = NO;

         self.navigationController.navigationBar.translucent = NO;

         self.view.backgroundColor = [UIColor whiteColor];

         [self setCollectionView];

         [self setHeaderView];

     }

 

 #pragma mark - setUI

 - (void)setCollectionView {

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

        layout.itemSize = CGSizeMake((self.view.frame.size.width - 30) / 3, (self.view.frame.size.width - 30) / 3);

         self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:layout];

        self.collectionView.backgroundColor = [UIColor clearColor];

        self.collectionView.delegate = self;

        self.collectionView.dataSource = self;

       // 最重要的一句代码!!!

        self.collectionView.contentInset = UIEdgeInsetsMake(200, 0, 0, 0);

        self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

        [self.view addSubview:self.collectionView];

    

       // 注册cell

        [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"collectionCellIdentify"];

       //xib创建的头视图

        [self.collectionView registerNib:[UINib nibWithNibName:@"CollectionHeadView" bundle:nil] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"headViewID"];

     }

 

- (void)setHeaderView {

    

  // 注意这里设置headerView的头视图的y坐标一定是从"负值"开始,因为headerView是添加在collectionView上的.

    UIImageView *headerView = [[UIImageView alloc]initWithFrame:CGRectMake(0, -200, self.view.frame.size.width, 200)];

    [headerView setImage:[UIImage imageNamed:@"1"]];

    

    [self.collectionView addSubview:headerView];

    

     }

 

 #pragma mark - UICollectionViewDataSource

 

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

    

        return 10;

     }

 

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

    

         return 5;

     }

 

 - (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

    

        UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCellIdentify" forIndexPath:indexPath];

       cell.backgroundColor = [UIColor redColor];

        return cell;

    }

 

 #pragma mark - UICollectionViewDelegateFlowLayout

 

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

    

         return UIEdgeInsetsMake(0, 0, 0, 0);

     }

 

#pragma mark - UICollectionViewDelegate

 

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

    

        // 复用SectionHeaderView,SectionHeaderView是xib创建的

          CollectionHeadView *headerView = [self.collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"headViewID" forIndexPath:indexPath];

     

     UILabel *title = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, headerView.frame.size.width, 40)];

     title.font = [UIFont systemFontOfSize:15];

     [headerView addSubview:title];

     title.text = @"大型花展";

     

         return headerView;

    

     }

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

     

        return CGSizeMake(self.view.frame.size.width, 30);

     }

 

 @end

posted on 2017-09-06 11:05  i兮兮  阅读(189)  评论(0编辑  收藏  举报