
CCtableVIEw和CCScrollVIEw一样用于创建滚动视图,CCtableVIEw的功能也比较多,创建比较麻烦
实例1:使用CCtableVIEw创建滚动视图
首先创建一个tableVIEw类
tableVIEw.h中的代码
#ifndef __tableVIEw_H__#@R_404_5552@ __tableVIEw_H__#include "cocos2d.h"#include "cocos-ext.h"USING_NS_CC;USING_NS_CC_EXT;class tableVIEw : public cclayer,public CCtableVIEwDataSource,public CCtableVIEwDelegate {public: virtual bool init(); static CCScene* scene(); CREATE_FUNC(tableVIEw); //创建一个数组 CCArray* _arr; //返回格子的大小 virtual CCSize tableCellSizeforIndex(CCtableVIEw *table,unsigned int IDx) { return cellSizefortable(table); }; //每个格子的大小 virtual CCSize cellSizefortable(CCtableVIEw *table) { //返回窗口的大小 return CCDirector::sharedDirector()->getWinSize(); } //返回格子的编号 virtual CCtableVIEwCell* tableCellAtIndex(CCtableVIEw *table,unsigned int IDx) { return (CCtableVIEwCell*)_arr->objectAtIndex(IDx); } //返回滚动的大小(格子的个数) virtual unsigned int numberOfCellsIntableVIEw(CCtableVIEw *table) { return _arr->count(); } virtual voID tableCelltouched(CCtableVIEw* table,CCtableVIEwCell* cell) { cclog("clicked cell is %d",cell->getIDx()); } virtual voID scrollVIEwDIDScroll(CCScrollVIEw* vIEw){}; virtual voID scrollVIEwDIDZoom(CCScrollVIEw* vIEw){};};#endif // __tableVIEw_H__
tableVIEw.cpp中的代码
#include "tableVIEw.h"CCScene* tableVIEw::scene(){ CCScene *scene = CCScene::create(); tableVIEw *layer = tableVIEw::create(); scene->addChild(layer); return scene;}bool tableVIEw::init(){ cclayer::init(); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCPoint center = ccp(winSize.wIDth / 2,winSize.height / 2); //先创建好CCtableVIEwCell //创建一个数组 _arr = CCArray::create(); _arr->retain(); for(int i = 0; i < 5; i++) { CCtableVIEwCell* cell = new CCtableVIEwCell(); cell->autorelease(); _arr->addobject(cell); CCSprite* sprite = CCSprite::create("HelloWorld.png"); cell->addChild(sprite); sprite->setposition(center); } //创建tableVIEw CCtableVIEw* tableVIEw = CCtableVIEw::create(this,winSize); addChild(tableVIEw); //设置tableVIEw的滚动方向 //kCCScrollVIEwDirectionHorizonta表示在水平方向上滚动 tableVIEw->setDirection(kCCScrollVIEwDirectionHorizontal); //加载数据 tableVIEw->reloadData(); tableVIEw->setDelegate(this); return true;} 执行结果:
实例2:使用CCtableVIEw创建一个小窗口的滚动视图(该功能常用于游戏中的选择道具)
首先创建一个tableVIEwSmall类
tableVIEwSmall.h中的代码
#ifndef __tableVIEwSmall_H__#@R_404_5552@ __tableVIEwSmall_H__#include "cocos2d.h"#include "cocos-ext.h"USING_NS_CC;USING_NS_CC_EXT;class tableVIEwSmall : public cclayer,public CCtableVIEwDelegate {public: virtual bool init(); static CCScene* scene(); CREATE_FUNC(tableVIEwSmall); //创建一个数组 CCArray* _arr; //返回格子的大小 virtual CCSize tableCellSizeforIndex(CCtableVIEw *table,unsigned int IDx) { if(1 == IDx) { return CCSizeMake(60,40); } return cellSizefortable(table); }; //每个格子的大小 virtual CCSize cellSizefortable(CCtableVIEw *table) { //每个格子的大小 return CCSizeMake(40,40); } //返回格子的编号 virtual CCtableVIEwCell* tableCellAtIndex(CCtableVIEw *table,cell->getIDx()); } virtual voID scrollVIEwDIDScroll(CCScrollVIEw* vIEw){}; virtual voID scrollVIEwDIDZoom(CCScrollVIEw* vIEw){};};#endif // __tableVIEwSmall_H__ tableVIEwSmall.cpp中的代码
#include "tableVIEwSmall.h"CCScene* tableVIEwSmall::scene(){ CCScene *scene = CCScene::create(); tableVIEwSmall *layer = tableVIEwSmall::create(); scene->addChild(layer); return scene;}bool tableVIEwSmall::init(){ cclayer::init(); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCPoint center = ccp(winSize.wIDth / 2,winSize.height / 2); //先创建好CCtableVIEwCell //创建一个数组 _arr = CCArray::create(); _arr->retain(); for(int i = 0; i < 5; i++) { CCtableVIEwCell* cell = new CCtableVIEwCell(); cell->autorelease(); _arr->addobject(cell); CCSprite* sprite = CCSprite::create("Closenormal.png"); cell->addChild(sprite); sprite->setposition(ccp(20,20)); } //创建tableVIEw CCtableVIEw* tableVIEw = CCtableVIEw::create(this,CCSizeMake(40 * 3,40)); addChild(tableVIEw); //设置tableVIEw的滚动方向 //kCCScrollVIEwDirectionHorizonta表示在水平方向上滚动 tableVIEw->setDirection(kCCScrollVIEwDirectionHorizontal); //加载数据 tableVIEw->reloadData(); tableVIEw->setDelegate(this); tableVIEw->setposition(center); return true;} 执行结果:
以上是内存溢出为你收集整理的Cocos2d-X 使用CCTableView创建滚动视图全部内容,希望文章能够帮你解决Cocos2d-X 使用CCTableView创建滚动视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)