【Cocos2D-X 游戏引擎】初窥门径(14)CCTableView
来源:互联网 发布:mac os升级 编辑:程序博客网 时间:2024/04/27 22:53
【Cocos2D-X 游戏引擎】初窥门径(14)CCTableView
分类: Cocos2D-X2013-04-23 10:09 2502人阅读 评论(4) 收藏 举报
Cocos2d-x
!在2.X版本已经没有CCListView了,用CCTableView实现。
直接写
#include "cocos-ext.h" 或 using namespace cocos2d::extension; 会报错,因为没有添加额外的依赖。
添加依赖:
1.右键点击项目->属性->vc++->项目包含目录,将目录extensions包含进去。
2.继续选择,连接器->输入->附加依赖项,添加libExtentions.lib
如果出现:
1>LINK : fatal error LNK1104: 无法打开文件“libExtentions.lib”
重新生成下解决方案即可。
下面看看怎么实现一个CCTableView
.h
- #include "cocos2d.h"
- #include "cocos-ext.h"
- USING_NS_CC;
- using namespace cocos2d::extension;
- class ListLayer : public CCLayer, public CCTableViewDataSource , public CCTableViewDelegate
- {
- public :
- ListLayer();
- ~ListLayer();
- CREATE_FUNC(ListLayer);
- virtual bool init();
- //触摸事件
- virtual void tableCellTouched(CCTableView* table, CCTableViewCell* cell);
- //子项的大小
- virtual CCSize cellSizeForTable(CCTableView *table);
- //生成子项的内容
- virtual CCTableViewCell* tableCellAtIndex(CCTableView *table, unsigned int idx);
- //总共多少项
- virtual unsigned int numberOfCellsInTableView(CCTableView *table);
- virtual void scrollViewDidScroll(CCScrollView* view);
- virtual void scrollViewDidZoom(CCScrollView* view);
- private :
- CCSize mSize;
- };
.cpp
- #include "ListLayer.h"
- ListLayer::ListLayer()
- {
- }
- ListLayer::~ListLayer()
- {
- }
- bool ListLayer::init()
- {
- if(!CCLayer::init())
- {
- return false;
- }
- mSize=CCDirector::sharedDirector()->getWinSize();
- CCTableView* pTableView = CCTableView::create(this, CCSizeMake(480, 480));
- pTableView->setDirection(kCCScrollViewDirectionVertical);
- pTableView->setPosition(ccp(20 , mSize.height/2 - pTableView->getContentSize().height/2 - 26));
- pTableView->setDelegate(this);
- pTableView->setVerticalFillOrder(kCCTableViewFillTopDown);
- this->addChild(pTableView);
- pTableView->reloadData();
- return true;
- }
- void ListLayer::tableCellTouched(CCTableView* table, CCTableViewCell* cell)
- {
- CCLog("cell touched at index: %i", cell->getIdx());
- }
- CCSize ListLayer::cellSizeForTable(CCTableView *table)
- {
- return CCSizeMake(480, 80);
- }
- CCTableViewCell* ListLayer::tableCellAtIndex(CCTableView *table, unsigned int idx)
- {
- CCString *pString =CCString::createWithFormat("this is cell %d", idx);
- CCTableViewCell *pCell = table->dequeueCell();
- if (!pCell)
- {
- pCell = new CCTableViewCell();
- pCell->autorelease();
- CCSprite *pSprite = CCSprite::create("listCellBg.png");
- pSprite->setAnchorPoint(CCPointZero);
- pSprite->setPosition(CCPointZero);
- pCell->addChild(pSprite);
- CCLabelTTF *pLabel = CCLabelTTF::create(pString->getCString(), "Arial", 20.0);
- pLabel->setPosition(CCPointZero);
- pLabel->setAnchorPoint(CCPointZero);
- pLabel->setTag(123);
- pCell->addChild(pLabel);
- }
- else
- {
- CCLabelTTF *pLabel = (CCLabelTTF*)pCell->getChildByTag(123);
- pLabel->setString(pString->getCString());
- }
- return pCell;
- }
- unsigned int ListLayer::numberOfCellsInTableView(CCTableView *table)
- {
- return 10;
- }
- void ListLayer::scrollViewDidScroll(CCScrollView *view)
- {
- }
- void ListLayer::scrollViewDidZoom(CCScrollView *view)
- {
- }
效果图:
转载请注明出处:http://blog.csdn.net/Vestigge
0 0
- 【Cocos2D-X 游戏引擎】初窥门径(14)CCTableView
- 【Cocos2D-X 游戏引擎】初窥门径(14)CCTableView
- 【Cocos2D-X 游戏引擎】初窥门径(12)游戏中的对话框
- 【Cocos2D-X 游戏引擎】初窥门径(1) 制作一个动态的精灵
- 【Cocos2D-X 游戏引擎】初窥门径(2) 场景的切换及特效
- 【Cocos2D-X 游戏引擎】初窥门径(3)图片文字显示
- 【Cocos2D-X 游戏引擎】初窥门径(4)Touch 事件:移动精灵
- 【Cocos2D-X 游戏引擎】初窥门径(5)CCAction:动作
- 【Cocos2D-X 游戏引擎】初窥门径(6)粒子系统
- 【Cocos2D-X 游戏引擎】初窥门径(7)无限地图滚动
- 【Cocos2D-X 游戏引擎】初窥门径(8)判断精灵点击
- 【Cocos2D-X 游戏引擎】初窥门径(9)播放音乐/音效
- 【Cocos2D-X 游戏引擎】初窥门径(10)解决中文乱码
- 【Cocos2D-X 游戏引擎】初窥门径(11)CCUserDefault:保存数据
- 【Cocos2D-X 游戏引擎】初窥门径(13)使用 sqlite 保存数据
- 【Cocos2D-X 游戏引擎】初窥门径(15)实现拖尾效果
- 【Cocos2D-X 游戏引擎】初窥门径(16)几种常用的 CCMenuItem、自定义Button
- 【Cocos2D-X 游戏引擎】初窥门径(17)CCLayerMultiplex 多层布景层
- UI多线程
- sed处理变量替换
- 配置MSXML4.0环境
- IPhone程序发布到应用程序商店的流程
- cmake管理visual studio无法显示头文件解决方法
- 【Cocos2D-X 游戏引擎】初窥门径(14)CCTableView
- windows 性能计数器
- 两百多的鞋穿还不到五六次就破了又买了双意尔康皮鞋
- iOS 创建单例的安全方法。
- c++中的相对路径
- Android 从本地选取图片或者拍照填充ImageView
- weblogic + apache 配置 当两个location重叠的情况
- 我能写个啥吗
- 九度-1023-EXCEL排序