记录CCTableView用法

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();

    

3.实现方法CCTableView在创建时候会从numberOfCellsInTableView()中拿到cell数量,通tableCellAtIndex()创建具体cell,从cellSizeForTable()中拿到cell的size设置

//点击哪个cell

voidHelloWorld::tableCellTouched(CCTableView* table,CCTableViewCell* cell)

{

    CCLog("cell touched at index: %i", cell->getIdx());

}


//每个cellsize

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;

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值