cocos2dx之CCTableView

来源:互联网 发布:32团淘宝兼职 编辑:程序博客网 时间:2024/05/29 18:39

在网上查了些资料,我们先开始来创建一个TableView,

class MyListViewLayer : public MyListViewLayerBase, public CCTableViewDataSource, public CCTableViewDelegate


先继承CCTableViewDataSource,CCTableViewDelegate

需要实现CCTableViewDataSource:

CCTableViewCell* tableCellAtIndex(CCTableView *table, unsigned int idx);unsigned int numberOfCellsInTableView(CCTableView *table);


然后实现ScrollView中的:

void tableCellTouched(CCTableView* table, CCTableViewCell* cell);


 

具体实现如下:

void MyListViewLayer::initLayer() {CCSize size = CCDirector::sharedDirector()->getWinSize();CCTableView *tableView = CCTableView::create(this, CCSizeMake(200, 200));tableView->setAnchorPoint(ccp(0.5f, 0.5f));tableView->setPosition(ccp(size.width / 2.0f, size.height / 2.0f));tableView->setDirection(kCCScrollViewDirectionVertical);tableView->setDelegate(this);tableView->setVerticalFillOrder(kCCTableViewFillTopDown);tableView->reloadData();// addthis->addChild(tableView, 1);this->setTouchEnabled(true);}


 

CCSize MyListViewLayer::cellSizeForTable(CCTableView *table) {return CCSizeMake(200, 100);}CCTableViewCell* MyListViewLayer::tableCellAtIndex(CCTableView *table, unsigned int idx) {CCTableViewCell *cell = table->dequeueCell();if(cell == NULL) {cell = new CCTableViewCell();cell->autorelease();}cell->removeAllChildrenWithCleanup(true);CCSprite *testSprite = CCSprite::create("leftSelected.jpg");testSprite->setAnchorPoint(ccp(0.5f, 0.5f));testSprite->setPosition(ccp(200, idx * 50 + 100));//创建一个tableCCSize size = testSprite->getContentSize();testSprite->setContentSize(ccp(100, 100));cell->addChild(testSprite, 2);return cell;}unsigned int MyListViewLayer::numberOfCellsInTableView(CCTableView *table) {return 3;//table 个数}void MyListViewLayer::tableCellTouched(CCTableView* table, CCTableViewCell* cell) {CCLOG("tableCellTouched\n");}


 

0 0
原创粉丝点击