作为一位客户端开发技术人员,开发的时候经常会遇到滑动操作;
我们项目是用cocos2.2的老版本,这里并没有listview或者tableview。但是提供了scollview;对于常用的我们要把它封装;方便以后使用和维护;
设计思路:
1、作为一个通用的主键,我们把滑动区域(长宽)和滑动方向(上下、左右)作为参数,方便定制;
2、我们滑动的ui作为一个layer,并在layer中添加一个movelayer作为中间层。方便在不同分辨率中的适配(这句话看具体框架而言)
3、在滑动layer里面添加,down、move和up的监听事件,处理点击、滑动和弹起时的逻辑;在这里我们一般会设置一个临界值来控制滑动的状态;
4、设置添加小孩的方法,把小孩添加到movelayer;
5、每个小孩都是一个cell,有自己的宽高;并且有自己的event回掉;方便我们刷新;
6、要有支持增删的功能,和自动排序;
结语:
添加每个小孩pos的获取方法,并用table保存,减少与c++的通讯,减少掉帧;每个小孩都要有自己的触摸区域和回调方法; 本设计缺陷,没有支持分布加载和动态加载,所以在创建大量cell的时候容易掉帧;
改进:设计成只在滑动类创建需要显示的cell,其他小孩在滑动的时候进行刷新。不要去删除或者新建;