需求:一个详情页面,有4个部分cell,高度不一样,而且一定条件下就只显示3个部分的cell.采用UICollectionView来做就比较灵活。
实现方式不一样
采用storyboard+viewcontroller
1.xcode8新建一个storyboard
默认空白,拖进一个viewcontroller,设置初始化VC,
再拖进一个collectionview,铺满屏幕
![](https://img.haomeiwen.com/i2165741/c7d36e0984a982ca.png)
![Uploading 图片_306407.png . . .]
3.创建一个继承 UICollectionViewCell 的类
4.cell关联类,以及添加标识。
![](https://img.haomeiwen.com/i2165741/4ddbf1c4cce235c4.png)
![](https://img.haomeiwen.com/i2165741/a609be8ca586a75b.png)
5.创建一个继承 UIViewControll 的类,添加关联,并做代码映射,也就是输出,或者说拖线。
![](https://img.haomeiwen.com/i2165741/005e0e93fbd37361.png)
6.创建另外三个继承 UICollectionViewCell 的类,并且在storeboard中关联类以及标识
7.开始在VC中写代码
@interface DCCouponDetailVC ()
< //1.遵守协议
UICollectionViewDelegate,
UICollectionViewDataSource,
UICollectionViewDelegateFlowLayout
>
最终效果
![](https://img.haomeiwen.com/i2165741/2e9ab875458cea61.png)
遇到的问题
could not dequeue a view of kind: UICollectionElementKindCell
解决方法:检查collectionView cellForItemAtIndexPath方法中,可重用的标识是否正确,前面有在storeboard设置的标识,这里才可以写。不然就要另外注册cell。
2.坑啊,突然发现cell里面的控件无法拖线到自定义的collectcell,只能拖到VC
检查了下发现
![](https://img.haomeiwen.com/i2165741/409a6e571824202b.png)
这个也要关联类才可以
直接关联这个避免键盘拉起遮挡的
TPKeyboardAvoidingCollectionView
网友评论