1CCTableView的使用,TableView响应和小格子tableView实现
来源:互联网 发布:财经网 财新网 知乎 编辑:程序博客网 时间:2024/04/30 15:19
1 CCTableView的使用
T26TableView.h
#ifndef __T26TableView_H__
#define __T26TableView_H__
#include "cocos2d.h"
#include "cocos-ext.h"
#include "TBack.h"
USING_NS_CC;
USING_NS_CC_EXT;
class T26TableView :public TBack, public CCTableViewDataSource
{
public:
CREATE_FUNC(T26TableView);
bool init();
static CCScene * scene();
CCArray* _cells;
//获取指定的CCTableViewCell
virtual CCTableViewCell* tableCellAtIndex(CCTableView *table,unsignedint idx)
{
return (CCTableViewCell*)_cells->objectAtIndex(idx);
}
//获取CCTableViewCell的个数
virtual unsigned int numberOfCellsInTableView(CCTableView *table)
{
return _cells->count();
}
//获得Cell的大小
virtual CCSize tableCellSizeForIndex(CCTableView *table,unsignedint idx) {
return cellSizeForTable(table);
}
virtual CCSize cellSizeForTable(CCTableView *table) {
return CCDirector::sharedDirector()->getWinSize();
}
};
#endif
T26TableView.cpp
#include "T26TableView.h"
CCScene *T26TableView::scene()
{
CCScene * scene = CCScene::create();
T26TableView * layer = T26TableView::create();
scene->addChild(layer);
return scene;
}
bool T26TableView::init()
{
TBack::init();
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
_cells = CCArray::create();
_cells->retain();
for (inti = 0;i < 5; ++i)
{
//创举CCTableViewCell
CCTableViewCell*cell =new CCTableViewCell;
//放入存储CCTableViewCell的CCArray中去
_cells->addObject(cell);
cell->release();
//每个格子中添加精灵
CCSprite* sprite = CCSprite::create("HelloWorld.png");
cell->addChild(sprite);
sprite->setPosition(ccp(winSize.width / 2,winSize.height / 2));
}
//使用了回调
CCTableView* view = CCTableView::create(this,winSize);
addChild(view);
//设置滚动的方向
view->setDirection(kCCScrollViewDirectionHorizontal);
//从数据源重新加载,视图将会被刷新
view->reloadData();
return true;
}
运行结果:
2 TableView响应和小格子tableView实现
T26TableView.h
#ifndef __T26TableView_H__
#define __T26TableView_H__
#include "cocos2d.h"
#include "cocos-ext.h"
#include "TBack.h"
USING_NS_CC;
USING_NS_CC_EXT;
class T26TableView :public TBack, public CCTableViewDataSource, public CCTableViewDelegate
{
public:
CREATE_FUNC(T26TableView);
bool init();
static CCScene * scene();
//数据源支持的虚函数
CCArray* _cells;
//获取指定的CCTableViewCell
virtual CCTableViewCell* tableCellAtIndex(CCTableView *table,unsignedint idx)
{
return (CCTableViewCell*)_cells->objectAtIndex(idx);
}
//获取CCTableViewCell的个数
virtual unsigned int numberOfCellsInTableView(CCTableView *table)
{
return _cells->count();
}
//获得Cell的大小,cctableView的某个格子的大小可以不一样
virtual CCSize tableCellSizeForIndex(CCTableView *table,unsignedint idx) {
CCLog("顺序是:idx = %d",idx);
//当时第3个格子的时候相对其它的格子的空间大一下
if (idx == 2)
{
return CCSize(80, 57);
}
return cellSizeForTable(table);
}
virtual CCSize cellSizeForTable(CCTableView *table) {
return CCSize(57, 57);
}
//点击代理函数
virtual void tableCellTouched(CCTableView*table,CCTableViewCell*cell)
{
CCLog("idx=%d",cell->getIdx());
}
virtual void scrollViewDidScroll(CCScrollView*view){}
virtual void scrollViewDidZoom(CCScrollView*view){}
};
#endif
T26TableView.cpp
#include "T26TableView.h"
CCScene *T26TableView::scene()
{
CCScene * scene = CCScene::create();
T26TableView * layer = T26TableView::create();
scene->addChild(layer);
return scene;
}
bool T26TableView::init()
{
TBack::init();
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCSize cellSize = CCSize(57, 57);
_cells = CCArray::create();
_cells->retain();
for (inti = 0;i < 5; ++i)
{
//创举CCTableViewCell
CCTableViewCell*cell =new CCTableViewCell;
//放入存储CCTableViewCell的CCArray中去
_cells->addObject(cell);
cell->release();
//每个格子中添加精灵
CCSprite* sprite = CCSprite::create("Icon.png");
cell->addChild(sprite);
sprite->setPosition(ccp(cellSize.width / 2,cellSize.height / 2));
}
//使用了回调
CCTableView* view = CCTableView::create(this,CCSize(cellSize.width * 3,cellSize.height));
addChild(view);
//设置滚动的方向
view->setDirection(kCCScrollViewDirectionHorizontal);
//从数据源重新加载,视图将会被刷新
view->reloadData();
view->setPosition(ccp(200, 200));
// 点击处理
view->setDelegate(this);
return true;
}
运行结果:
- 1CCTableView的使用,TableView响应和小格子tableView实现
- TableView和ListView的使用
- tableView的使用和作用
- TableView和ListView的使用
- swift tableView registerCell基于协议的实现和使用
- Iphone TableView 使用实现
- TableView中单选的实现
- 横向TableVIew的实现
- tableView的底层实现
- cocos2d-x tableview和CCControlButton的使用
- cocos2d-x tableview和CCControlButton的使用
- cocos2d-x tableview和CCControlButton的使用
- swift中tableview的使用和注意事项
- cocos2d-x tableview和CCControlButton的使用
- tableView 的使用步骤和方法
- 我使用的Tableview 和cell
- Qt model和tableview的使用
- TableView的使用
- 为Python添加默认模块搜索路径
- 【BFS|位运算】POJ-1753 Flip Game
- 第六篇--adapter的理解及应用
- 最高效的进制是什么?
- C++虚函数表解析(转)
- 1CCTableView的使用,TableView响应和小格子tableView实现
- 北大ACM1001
- Win32 application 和Win32 consloe application 的区别
- 重灌IOS
- linux之getopt 函数
- poj 1442 单调队列
- Ubuntu查看系统的信息
- Oracle中反GROUP BY的写法
- 记NOIP2014