CocosCreator实现TableView

CocosCreator中没有自带的tableview插件,虽然样例中有listview,但是很多功能无法实现,比如:无法在指定位置插入数据,item的个数必须大于30等,所以我就按照自己的思路,实现了一个TableView插件。
我的思路是,根据scrollview移动的偏移量,算出显示在视图中的起始位置,然后对视图中的item进行刷新。
主要的代码:

protected freshShowItem() {
	let nShowIndex = this.getShowStartIndex();
	for (let index = 0; index < this._nShowCount; index++) {
		let nItemIndex = nShowIndex + index;
		if (nItemIndex >= this._dataList.length) {    //超出了下边界
			break;
		}
		let nItemID = (nItemIndex + this._nItemCount) % this._nItemCount;
		let node = this._itemList[nItemID];
		node.y = this.getItemPosY(nItemIndex);
		let ctrl = node.getComponent(this.getTableItemName());
		let newData = this._dataList[nItemIndex];
		if (newData != null && ctrl.getData() != newData) {
			ctrl.updateItem(nItemID, nItemIndex, this._dataList[nItemIndex]);
		}
	}
}

实现效果:

代码地址:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注