根据官方示例的复用代码,改成可多列的列表
代码不多,可能是复用item的最优方案(我用的时间也不长,不是很懂)
核心逻辑很简单,就是将滚出屏幕的 item 放到将要滚到item的地方 重新设置数据后显示
代码是从项目中抽出来的核心代码
只要遵循这个思路都可以使用
cc.Class({
extends: cc.Component,
properties: {
itemNode: cc.Node,
scrollView: cc.ScrollView,
},
// use this for initialization
onLoad: function () {
window.log = function () {
this.apply(window, arguments);
}.bind(console.log);
this.spacing = 15;//间隔
this.updateTimer = 0;//更新时间累加
this.updateInterval = 0.1;//更新间隔
this.lastContentPosY = 0; // 上滚 还是 下滚
this.itemSize = 80;
// 缓冲区域,半屏加1个item高度
this.bufferZone = 250 + this.itemSize;
this.content = this.scrollView.content;
this.itemPool = new cc.NodePool();
this.dataArray = [];
this.initData();
this.setData(