#include "cocos-ext.h"
using namespace cocos2d;
使节点类继承此两个抽象类
public CCTableViewDelegate,public CCTableViewDataSource
头文件中引入抽象类的虚函数
//datasource
virtual CCSize cellSizeForTable(CCTableView *table);
virtual CCTableViewCell* tableCellAtIndex(CCTableView *table, unsigned int idx);
virtual unsigned intnumberOfCellsInTableView(CCTableView *table);
//delegate
virtual void tableCellTouched(CCTableView* table, CCTableViewCell* cell);
另外还要引入CCScrollViewDelegate的虚函数,原因是CCTableView继承自CCScrollView
virtual void scrollViewDidScroll(cocos2d::extension::CCScrollView* view) {}
virtual void scrollViewDidZoom(cocos2d::extension::CCScrollView* view) {}
在初始化方法中调用
// Add the CCTableView
CCTableView *tableView = CCTableView::create(this, CCSizeMake(600, 690));
tableView->setDirection(kCCScrollViewDirectionVertical);
tableView->setPosition(ccp(512-85,28));
tableView->setDelegate(this);
tableView->setVerticalFillOrder(kCCTableViewFillTopDown);
this->addChild(tableView);
tableView->reloadData();
实现的四个与table有关的虚函数
//datasource
CCSize HelloWorld::cellSizeForTable(CCTableView *table){
return CCSizeMake(600, 100);
}
CCTableViewCell* HelloWorld::tableCellAtIndex(CCTableView *table, unsigned int idx){
CCTableViewCell *cell = table->dequeueCell();
if (!cell) {
// the sprite
cell = new CCTableViewCell();
cell->autorelease();
CCSprite *sprite = CCSprite::create("Icon-72.png");
sprite->setAnchorPoint(ccp(0, 0));
sprite->setPosition(ccp(0, 30));
cell->addChild(sprite);
}
return cell;
}
unsigned int HelloWorld::numberOfCellsInTableView(CCTableView *table){
return 40;
}
//delegate
void HelloWorld::tableCellTouched(CCTableView* table, CCTableViewCell* cell){
}