UICollectionVIew的简单使用

<UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>

 

@property (nonatomic,strong) UICollectionView *collectionView;

 

- (void)createCollectionView {

    

    //创建布局对象

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

    //设置单元格的尺寸

    //flowLayout.itemSize = CGSizeMake((kWidth-15)/3, 80);

    //设置头视图高度

    flowLayout.headerReferenceSize = CGSizeMake(0, 30);

    //flowlaout的属性,横向滑动

    flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;

    //接下来就在创建collectionView的时候初始化,就很方便了(能直接带上layout)

    _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:flowLayout];

    _collectionView.delegate = self;

    _collectionView.dataSource = self;

    _collectionView.backgroundColor = [UIColor clearColor];

    [self.view addSubview:_collectionView];

    [_collectionView mas_updateConstraints:^(MASConstraintMaker *make) {

        make.edges.equalTo(self.view);

    }];

    //collectionCell的注册

    [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"UICollectionViewCell"];

    //collection头视图的注册   头视图也得注册  直接在头视图上添加内容或者,继承于UICollectionReusableView进行布局,然后在下面红色部分用对应的类进行注册

    [_collectionView registerClass:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"Identifierhead"];

 

}

 

#pragma mark -UICollectionViewDataSource

//指定组的个数 ,一个大组!!不是一排,是N多排组成的一个大组(与下面区分)

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView

{

    return 1;

}

 

//指定单元格的个数 ,这个是一个组里面有多少单元格,e.g : 一个单元格就是一张图片

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

{

    //return _dataSourceArray.count;

    return 100;

}

 

//构建单元格

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

{

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

    cell.backgroundColor = [UIColor purpleColor];

    return cell;

}

 

//组的头视图创建

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

{

    CollectionHeaderView *header = nil;

    if (kind == UICollectionElementKindSectionHeader) {

        header  = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"CollectionViewHeader" forIndexPath:indexPath];

    } 

 else if (kind == UICollectionElementKindSectionFooter) {

        //尾视图

    }

    return header;

}

 

//通过协议方法设置单元格尺寸

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

{

    return CGSizeMake((kWidth-15)/3, (kWidth-15)/3);

}

 

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

{

    //设置两个item直接的距离

    return 2.5;

}

 

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

    //设置两列直接的距离(上下滑动就是上下两个item的距离)

    return 2.5;

}

 

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

    //设置item距离距离屏幕周围的距离

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

}

 

posted @ 2015-12-14 16:09  YouNeedCourage  阅读(220)  评论(0编辑  收藏  举报