iOS——UICollectionView

原创 2016年06月01日 20:43:56

一、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;
        }
    } 
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS UICollectionView简介 —— HERO博客

UICollectionView简介,属性,方法。

iOS UICollectionView实用练习 —— HERO博客

UICollectionView的基本使用,自定义UICollectionViewLayout实现圆形布局,自定义UICollectionViewFlowLayout实现书架效果。

iOS项目开发实战——使用UICollectionView实现瀑布流

瀑布流是目前比较流行的一种图片显示方式。很多的电商网站都已这样的方式来呈现商品。现在我们来简单实现一下,本案例使用OC实现。 (1)在Images.xcassets中拖入若干张图片。 (2)在View...

ios开发——解决UICollectionView的cell间距与设置不符问题

在用UICollectionView展示数据时,有时我们希望将cell的间距调成一个我们想要的值,但往往不得结果。这里我们来看一个不错的方法

ios开发——UICollectionView初阶

UICollectionView是一种新的数据展示视图

iOS UICollectionView实现图片轮播 —— HERO博客

iOS UICollectionView实现图片轮播。

iOS开发——新特性界面(UICollectionView)

没一款app在刚下载或者更新之后,app有些特色功能需要向用户传递,这个时候我们就要使用新特新界面,用户刚打开软件能看到各种展示图片,左右滑动还可以切换图片,那么新特性界面是如何实现的呢,下面我就用介...

iOS项目开发实战——实现UICollectionView的动态增加Cell与Section

UICollectionView是iOS中一种非常重要的控件,继承自UITableView,和Android中的RecycleView也是类似的,常常用在使用瀑布流的界面中,目前已经越来越常见了。今天...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)