CCTableView 用法步骤:
1.类继承CCTableViewDelegate,CCTableViewDataSource,然后声明下列方法
//CCTableViewDelegate 继承自 CCScrollViewDelegate,virtual void scrollViewDidScroll( CCScrollView * view){};
virtual void scrollViewDidZoom( CCScrollView * view){};
// 点击哪个 cell
virtual void tableCellTouched( CCTableView * table, CCTableViewCell * cell);
// 每个 cell 的 size
virtual CCSize cellSizeForTable( CCTableView *table);
// 生成 cell
virtual CCTableViewCell * tableCellAtIndex( CCTableView *table, unsigned int idx);
//cell 的数量
virtual unsigned int numberOfCellsInTableView( CCTableView *table);
// 按下cell高亮
virtual void tableCellHighlight( CCTableView * table, CCTableViewCell * cell);
//抬起 取消高亮
virtual void tableCellUnhighlight(CCTableView* table,CCTableViewCell* cell);
2.创建初始化一个CCTableView
CCTableView* tableView = CCTableView::create(this,CCSize(200, size.height));
tableView->setDirection(kCCScrollViewDirectionVertical); //垂直方向
tableView->setPosition(CCPointZero);
tableView->setAnchorPoint(ccp(0,0));
tableView->setDelegate(this);
tableView->setVerticalFillOrder(kCCTableViewFillTopDown); //填充排序方向
this->addChild(tableView,1);
tableView->reloadData();
//点击哪个cell
voidHelloWorld::tableCellTouched(CCTableView* table,CCTableViewCell* cell)
{
CCLog("cell touched at index: %i", cell->getIdx());
}
//每个cell的size
CCSizeHelloWorld::cellSizeForTable(CCTableView *table)
{
return CCSize(80,80);
}
//生成cell
CCTableViewCell*HelloWorld::tableCellAtIndex(CCTableView *table,unsigned int idx)
{
CCString* nameStr = CCString::createWithFormat("%d",idx);
CCTableViewCell* cell = table->dequeueCell();
if (cell == NULL) {
cell =new CCTableViewCell();
cell->autorelease();
//创建精灵图片,添加到cell
CCSprite* iconSpr = CCSprite::create("Icon.png");
iconSpr->cocos2d::CCNode::setAnchorPoint(CCPointZero);
iconSpr->setPosition(CCPointZero);
iconSpr->setTag(10);
cell->addChild(iconSpr);
//创建字体Label,添加到cell
CCLabelTTF* label = CCLabelTTF::create(nameStr->getCString(),"Arial",40.0);
label->setPosition(ccp(20,20));
label->cocos2d::CCNode::setAnchorPoint(CCPointZero);
label->setTag(20);
cell->addChild(label);
}
// 如果已创建,便只设置内容即可
else {
CCLabelTTF* label = (CCLabelTTF*)cell->getChildByTag(20);
label->setString(nameStr->getCString());
}
return cell;
}
//按下Cell高亮
voidHelloWorld::tableCellHighlight(CCTableView* table,CCTableViewCell* cell)
{
CCTexture2D* texture =CCTextureCache::sharedTextureCache()->addImage("CloseNormal.png");
CCSprite* iconSpr = (CCSprite*)cell->getChildByTag(10);
iconSpr->setTexture(texture);
}
//抬起取消高亮
voidHelloWorld::tableCellUnhighlight(CCTableView* table,CCTableViewCell* cell)
{
CCTexture2D* texture =CCTextureCache::sharedTextureCache()->addImage("Icon.png");
CCSprite* iconSpr = (CCSprite*)cell->getChildByTag(10);
iconSpr->setTexture(texture);
}
//cell的数量
unsignedint HelloWorld::numberOfCellsInTableView(CCTableView *table)
{
return 6;
}