继承
public cocos2d::extension::CCTableViewDataSource, public cocos2d::extension::CCTableViewDelegate
重写函数
virtual void scrollViewDidScroll(cocos2d::extension::CCScrollView* view); virtual void scrollViewDidZoom(cocos2d::extension::CCScrollView* view); virtual void tableCellTouched(cocos2d::extension::CCTableView* table, cocos2d::extension::CCTableViewCell* cell); virtual cocos2d::CCSize tableCellSizeForIndex(cocos2d::extension::CCTableView *table, unsigned int idx); virtual cocos2d::extension::CCTableViewCell* tableCellAtIndex(cocos2d::extension::CCTableView *table, unsigned int idx); virtual unsigned int numberOfCellsInTableView(cocos2d::extension::CCTableView *table);
void HelloWorld::scrollViewDidScroll(cocos2d::extension::CCScrollView* view) { }; void HelloWorld::scrollViewDidZoom(cocos2d::extension::CCScrollView* view) { } void HelloWorld::tableCellTouched(cocos2d::extension::CCTableView* table, cocos2d::extension::CCTableViewCell* cell){ CCLOG("cell touched at index: %i", cell->getIdx()); } cocos2d::CCSize HelloWorld::tableCellSizeForIndex(cocos2d::extension::CCTableView *table, unsigned int idx){ return CCSizeMake(100, 130); } cocos2d::extension::CCTableViewCell* HelloWorld::tableCellAtIndex(cocos2d::extension::CCTableView *table, unsigned int idx){ CCTableViewCell *cell = table->dequeueCell(); if(!cell){ cell = new CCTableViewCell(); cell->autorelease(); } cell->removeAllChildrenWithCleanup(true); for (int i=0; i<3; i++) { CCSprite *sprite=CCSprite::create("CloseNormal.png"); sprite->setAnchorPoint(CCPointZero); sprite->setPosition(ccp(0,0)); cell->addChild(sprite); } return cell; } unsigned int HelloWorld::numberOfCellsInTableView(cocos2d::extension::CCTableView *table){ return 20; }
用数据源创建TableView,并添加到Layer上
CCTableView* tableView = CCTableView::create(this, CCSizeMake(250, 260));//this是数据源的对象,因为这个时候该类继承自CCTableViewDataSource,所以用this tableView->setDirection(kCCScrollViewDirectionHorizontal); tableView->setPosition(ccp(20,size.height/2-30)); tableView->setDelegate(this);//触摸响应 this->addChild(tableView); tableView->reloadData();