您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx之CCTableView

2013-12-23 21:00 176 查看
在网上查了些资料,我们先开始来创建一个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();// add
	this->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));//创建一个table
	CCSize 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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: