Cocos2d-X 使用CCTableView创建滚动视图
来源:互联网 发布:spas软件 编辑:程序博客网 时间:2024/05/17 09:21
From: http://blog.csdn.net/u010105970/article/details/40352619
CCTableView和CCScrollView一样用于创建滚动视图,CCTableView的功能也比较多,创建比较麻烦
实例1:使用CCTableView创建滚动视图
首先创建一个TableView类
TableView.h中的代码
- #ifndef __TableView_H__
- #define __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__
- #define __TableViewSmall_H__
- #include "cocos2d.h"
- #include "cocos-ext.h"
- USING_NS_CC;
- USING_NS_CC_EXT;
- class TableViewSmall : public CCLayer, public CCTableViewDataSource, 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, 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 // __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;
- }
执行结果:
0 0
- Cocos2d-X 使用CCTableView创建滚动视图
- Cocos2d-X 使用CCTableView创建滚动视图
- Cocos2d-X使用CCScrollView创建滚动视图
- Cocos2d-x 2.x:CCTableView的使用
- cocos2d-x中CCTableView的使用
- cocos2d-x CCScrollView和CCTableView的使用
- cocos2d-x中CCTableView的使用
- cocos2d-x CCScrollView和CCTableView的使用
- cocos2d-x中CCTableView的使用
- Cocos2d-x教程(23)-CCTableView使用详解
- cocos2d-x CCScrollView和CCTableView的使用
- Cocos2d-x lua CCTableView 的使用
- Cocos2d-X CCTableView的简单使用
- Cocos2d-X 学习笔记 12 CCTableView使用
- cocos2d-x CCScrollView和CCTableView的使用
- cocos2d-x CCScrollView和CCTableView的使用
- cocos2d-x给CCTableView加入下拉滚动条
- cocos2d-x【CCTableView】
- 国内SAP自由顾问价格
- 如何快速从BSEG读取数据
- oracle9i利用UNDO闪回,前提是被删除的数据在UNDO中没有被覆盖
- jdbc-调用存储过程
- 五险一金如何处理
- Cocos2d-X 使用CCTableView创建滚动视图
- HTTP错误代码401-502
- Unity鼠标拖拽旋转拉远拉近场景
- OpenCV学习(十二)之打开AVI视频,并存储视频帧(Mat)
- 安全卫士——Day09_1
- TEA加密算法的C/C++实现
- SQL/Oracle 两表关联更新
- SAP ENHANCEMENT
- 不要忽视Web编程中的小细节(很实用)