collectionView之创建方法

collectionView三种创建方式的总结

1.有三种方式来创建collection

1)通过storyBoard来创建


1.1首先删除ViewController,然后拖一个UIcollectionViewController,把它的类型改成viewController,然后再将viewController的继承关系改成uicollectionViewController

通过这种方式创建的collectionView会自动遵守代理和数据源协议,不需要手动写,可以直接写对应的数据源和代理方法

这种方式创建的View中的是动态的cell,相当于xib,需要用一个类来描述它, 并且要将这个cell的类改成描述这个cell的类的名字

        在数据源方法中,获取对应的模型属性的时候,得到模型中唯一一行不是通过indexPath.row,而是通过indexPath.item来获取,返回怎么样的cell中可以不用注册,直接从重用缓存池里面取,但是要给控制器中的动态cell绑定重用标识符,要控制view中的cell的大小和布局,必须拿到collectionView的代理对象,也就是collectionViewLayout

拿到flowLayout的两种方式:

1.通过self.collectionView.collectionVIewLayout拿到

2.直接通过self.collectionViewLayout拿到

两种方式的区别在于,第二种获取方式得到的layout是只读的,所以不可以修改布局的值,所以,要想修改collectionView的布局,必须通过第一种方式获取


1.2还可以在控制器中直接拖入一个collectionView,然后可以在collectionView中的动态cell中添加要添加的控件,但是此时collectionVIew没有遵守对应的数据源和代理方法,要手动写代码来遵守,这是和1.1方法里创建collection唯一的区别

2)通过xib来创建

首先是要创建一个xib用来描述collectionView中的cell,但是在collectionView中注册cell的时候,通过读取xib来注册,

方法如下:

self.collectionView registerNib:<#(nullable UINib *)#> forCellWithReuseIdentifier:<#(nonnull NSString *)#>

       只要在register中传入对应的xib的名称,并且通过xib定义的cell也要绑定重用标识符

3)通过代码来创建

直接通过新建一个collectionView,然后将collectionView添加到View中,再建一个流水布局的类(即collectionView的代理布局类),然后在ViewDidLoad中注册cell的时候通过initWithFrame:collectionViewLayout:这个方法设置他的流水布局的对象,这样就可以通过这个创建的布局对象来设置collectionView的布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值