PSCollectionView是一个使用UIScrollVew做容器,每一列的宽度固定高度可变。其用法简单,属于较为简洁的开源类。其效果图如下:
它的用法类似于UITableView。
1.首先创建PSCollectionView对象,并对其属性赋值,设置代理:
2.添加header,footer,empty,loader等视图
3. 实现其代理的协议方法,设置单元格的个数,单元格的点击事件,单元格的创建等:
PSCollectionView实现的基本原理
●
根据列数固定,为每列数存储一个当前列的高度值
●插入数据块时在当前列原有的高度上插入。然后更新当前列的高度为原有高度加上插入的高度。重复至所有数据都插入完毕
●调整容器的高度为各列的最大高度
PSCollectionView的点击事件
此类是在其内部定义了一个
UITapGestureRecognizer的子类PSCollectionViewTapGestureRecognizer来检测单元格数据块的点击操作
。
手势检测点击时会向他的协议方法询问此点击是否可以接受,如果手势对象是PSCollectionViewTapGestureRecognizer类型,则我们添加进去,设置为单元格可见,若不可见,则忽略掉。如果手势对象不是PSCollectionViewTapGestureRecognizer类型,则一直返回YES。 当检测到点击操作时调用协议方collectionView:didSelectView:atIndex将方法传递出去。传递的参数设为选择的单元格以及索引。
此类型还设有重用单元格视图机制