1、头文件中
#include <iostream>
#include "cocos-ext.h"
#include "cocos2d.h"
using namespace cocos2d;
USING_NS_CC_EXT;
class tableView:public CCLayer,public CCTableViewDelegate,public CCTableViewDataSource
{
public:
static CCScene *scene();
virtual bool init();
CREATE_FUNC(tableView);
//CREATE_FUNC(tableView);
//SCENE_FUNC(tableView);
//实现协议中的纯虚函数 即=0的方法
//CCTableViewDelegate的方法
virtual void tableCellTouched(CCTableView* table, CCTableViewCell* cell);
//CCTableViewDataSource的方法
virtual CCTableViewCell* tableCellAtIndex(CCTableView *table, unsigned int idx) ;
virtual unsigned int numberOfCellsInTableView(CCTableView *table);
//CCScrollViewDelegate的方法
virtual void scrollViewDidScroll(CCScrollView* view) ;
virtual void scrollViewDidZoom(CCScrollView* view) ;
CCTableView *myTableView;
virtual CCSize cellSizeForTable(CCTableView *table) ;
};
2、在实现文件之中:CCScene *tableView::scene()
{
CCScene *s=CCScene::create();
tableView *l=tableView::create();
s->addChild(l);
return s;
}
bool tableView::init()
{
if(!CCLayer::init())
{
return false;
}
myTableView=CCTableView::create(this, CCSizeMake(960, 640));
myTableView->setDirection(kCCScrollViewDirectionVertical);
myTableView->setPosition(ccp(0, 0));
myTableView->setVerticalFillOrder(kCCTableViewFillTopDown);//降序 枚举类型
myTableView->setDelegate(this);
this->addChild(myTableView);
return true;
}
//CCTableViewDelegate的方法
void tableView:: tableCellTouched(CCTableView* table, CCTableViewCell* cell)
{
CCLog("qqqqqqqqqqq");
CCLog("%d",cell->getIdx());
}
//CCTableViewDataSource的方法
CCTableViewCell* tableView:: tableCellAtIndex(CCTableView *table, unsigned int idx)
{
CCLog("aaaaaaaaaaaaaaa");
CCTableViewCell *cell=table->dequeueCell();
if(cell==NULL)
{
cell=new CCTableViewCell();
cell->autorelease();
CCSprite *sp=CCSprite::create("Icon-57.png");
sp->setPosition(ccp(30, 20));
cell->addChild(sp);
CCLabelTTF *label=CCLabelTTF::create("Test", "Arial", 30);
label->setPosition(ccp(100,30));
label->setTag(20);
cell->addChild(label);
//定义粒子
CCParticleFire *fire=CCParticleFire::create();
fire->setPosition(ccp(180,30));
cell->addChild(fire);
}
else
{
//cell->removeAllChildren();//如果重新添加 就不用remove、
CCLabelTTF *label=(CCLabelTTF *)cell->getChildByTag(20);
label->setString("515115");
//cell->addChild(label);
}
return cell;
}
//cell的数量为10
unsigned int tableView:: numberOfCellsInTableView(CCTableView *table)
{
CCLog("zzzzzzzzzzzzzzzzzz");
return 10;
}
//CCScrollViewDelegate的方法
void tableView::scrollViewDidScroll(CCScrollView* view)
{
}
void tableView::scrollViewDidZoom(CCScrollView* view)
{
}
//表格cell的大小
CCSize tableView::cellSizeForTable(CCTableView *table)
{
CCLog("wwwwwwwwwwwwwwww");
return CCSizeMake(960, 200);
}