#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){
}