1. 程式人生 > >COCOS 3.0 ListView新增條目數

COCOS 3.0 ListView新增條目數

首先建立ListView的layer層,再建立單獨項的Node.csb;然後
在Layer層傳入資料呼叫,通過insertCustomItem()插入每條資料;




//節點的建立
.h
#pragma once
#include "cocos2d.h"
#include "UI/CocosGUI.h"
#include "VAchieveView.h"


USING_NS_CC;


class VAchieveItem:public Node
{
public:
VAchieveItem(void);
~VAchieveItem(void);
virtual bool init()override;
Text* haveNum;
Text* hasAimNum;
Text* aimNum;
Button* GetBar;
Text* addAwardScore;
Text* key;
Text* PreBut;
CREATE_FUNC(VAchieveItem);
void SetInfor(int hNumInt,int aNumInt,int AwardSco,bool getBut,bool preBut);
};


.cpp


#include "VAchieveItem.h"
#include "cocostudio\ActionTimeline\CSLoader.h"




//const std::string PicUrl = "http://61.183.69.234:9301";


VAchieveItem::VAchieveItem(void)
{
}




VAchieveItem::~VAchieveItem(void)
{
}


bool VAchieveItem::init()
{
if (!Node::init())
{
return false;
}


auto NodeRoot = CSLoader::createNode("CSD/VAchieveItem.csb");
addChild(NodeRoot);
//已獲得數
haveNum=(Text*)NodeRoot->getChildByName("HasNum");
//達到目標數
hasAimNum=(Text*)NodeRoot->getChildByName("HasAimNum");
//目標數
aimNum=(Text*)NodeRoot->getChildByName("AimColNum");
//可領取
GetBar=(Button*)NodeRoot->getChildByName("GetBtn");
//獎勵
addAwardScore=(Text*)NodeRoot->getChildByName("AddAwardScore");
//進行中
PreBut=(Text*)NodeRoot->getChildByName("ActionText");
return true;
}


void VAchieveItem::SetInfor(int hNumInt,int aNumInt,int AwardSco,bool getBut,bool preBut)
{
//顯示已有

std::stringstream stream1;
stream1<<hNumInt;
haveNum->setText(stream1.str());
//顯示目標數

std::stringstream stream2;
stream2<<aNumInt;
aimNum->setText(stream2.str());
//獎勵

std::stringstream stream3;
stream3<<AwardSco;
addAwardScore->setText(stream3.str());
//可領取
GetBar->setVisible(getBut);
PreBut->setVisible(preBut);
}




//呼叫介面
void VAchieveView::LoadAch(ButtonType type){
listCol->removeAllChildren();
bool isFinish=false;
int i=0;
int hNum=150000;
int loopIndex=0;
int loopIndexGet=0;
for (auto& achieve:achieves)
{
if (!isFinish)
{
auto VAch=VAchieveItem::create();
if (type==preBar)
{
if (hNum<achieve.AimNum)
{

VAch->SetInfor(hNum,achieve.AimNum,achieve.AwardScore,false,true);
Widget* ach=Widget::create();
ach->addChild(VAch);
ach->setSize(Size(776.00f,123.00f));
listCol->insertCustomItem(ach,loopIndex);
i++;
loopIndex++;
if (i>10)
{
break;
}
}


}else
{
if (hNum>=achieve.AimNum)
{
VAch->SetInfor


(achieve.AimNum,achieve.AimNum,achieve.AwardScore,true,false);
Widget* ach=Widget::create();
ach->addChild(VAch);
ach->setSize(Size(776.00f,123.00f));
listCol->insertCustomItem(ach,loopIndexGet);
i++;
loopIndexGet++;
if (i>10)
{
break;
}
}else
{
break;
}
}
}

}

}