iOS——UICollectionView

一、UICollectionView概述

继承与UIScrollView的一个视图,也称为集合视图。
UICollectionView的实现跟tableView不一样的地方在于Item的布局稍微复杂一点,需要用UICollectionViewLayout类来描述视图的布局。我们在项目中常用的是系统提供的UICollectionViewLayout类,也可以自定义UICollectionViewLayout。

二、UICollectionViewLayout

设置每个item的大小

@property (nonatomic) CGSize itemSize;

设置每个item的最小行间距(默认是10)

@property (nonatomic) CGFloat minimumLineSpacing;

设置每个itme的最小列间距(默认是10)

@property (nonatomic) CGFloat minimumInteritemSpacing;

头部引用的尺寸

@property (nonatomic) CGSize headerReferenceSize;

尾部引用的尺寸

@property (nonatomic) CGSize footerReferenceSize;

设置UICollectionView的滑动方向

@property (nonatomic) UICollectionViewScrollDirection scrollDirection;
typedef NS_ENUM(NSInteger, UICollectionViewScrollDirection) {
    UICollectionViewScrollDirectionVertical,  //垂直
    UICollectionViewScrollDirectionHorizontal //水平
};

三、UICollectionView

1.属性

初始化

-(instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout;

注册cell

-(void)registerClass:(nullable Class)cellClass forCellWithReuseIdentifier:(NSString *)identifier;

-(void)registerNib:(nullable UINib *)nib forCellWithReuseIdentifier:(NSString *)identifier;

-(void)registerClass:(nullable Class)viewClass forSupplementaryViewOfKind:(NSString *)elementKind withReuseIdentifier:(NSString *)identifier;

-(void)registerNib:(nullable UINib *)nib forSupplementaryViewOfKind:(NSString *)kind withReuseIdentifier:(NSString *)identifier;

重用cell

-(__kindof UICollectionViewCell *)dequeueReusableCellWithReuseIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath;

-(__kindof UICollectionReusableView *)dequeueReusableSupplementaryViewOfKind:(NSString *)elementKind withReuseIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath;

刷新collection

-(void)reloadData; 

2.代理方法(必须)

返回个数

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

返回cell

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

3.代理方法(可选)

点击方法

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath;

分区数

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

四、返回头部、尾部视图样式

UICollectionView不能像UITableView一样直接指定头部和尾部视 图,需要注册使⽤用,最⼤大的好处是添加了重⽤用机制。

1.注册头部、尾部视图

[self.collectionView registerNib:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"headerView"];

[self.collectionView registerNib:[UICollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footView"];

2.返回头部、尾部视图的样式

-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
    //需要判断是否返回头部视图还是尾部视图
    if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {
        //初始化头部视图
        UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"headerView" forIndexPath:indexPath];
        //设置头部样式
        headerView.backgroundColor = [UIColor redColor];
        //返回头部视图
        return headerView;
    }else{

        if ([kind isEqualToString:UICollectionElementKindSectionFooter]) {
            //初始化尾部视图
            UICollectionReusableView *footView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"footView" forIndexPath:indexPath];
            //设置尾部样式
            footView.backgroundColor = [UIColor yellowColor];
             //返回尾部视图
            return footView;
        }
    } 
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/long_niu/article/details/51558875
文章标签: ios
个人分类: iOS
上一篇iOS——封装网络请求
下一篇iOS——音频封装
想对作者说点什么? 我来说一句

iOS UICollectionView的简单使用

2015年05月08日 4.43MB 下载

iOS 瀑布流 图片查看器

2015年07月22日 102KB 下载

UICollectionView示例代码

2015年10月19日 478KB 下载

ios UICollectionView

2016年08月16日 65KB 下载

iOS UIcollectionView

2017年08月22日 138KB 下载

IOS UITableView UIcollectionView 结合

2015年06月29日 940KB 下载

iOS UIcollectionview瀑布流

2017年06月29日 221KB 下载

IOS UICollectionView布局详解

2015年10月24日 42KB 下载

没有更多推荐了,返回首页

关闭
关闭