#ifndef __TableView_H__
#define __TableView_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
#if 0
class MyDataSource : public TableViewDataSource
{
public:
Vector<TableViewCell*> _cells;
Size winSize = Director::getInstance()->getWinSize();
MyDataSource()
{
for (int i = 0; i < 3; ++i)
{
TableViewCell* cell = TableViewCell::create();
_cells.pushBack(cell);
char buf[1024];
sprintf(buf, "Images/background%d.png", i + 1);
Sprite* sprite = Sprite::create(buf);
cell->addChild(sprite);
sprite->setPosition(winSize.width / 2, winSize.height / 2);
sprite->setTag(i);
}
}
// 获得Cell尺寸,
virtual Size tableCellSizeForIndex(TableView *table, ssize_t idx) {
return cellSizeForTable(table);
};
// 获得Cell尺寸
virtual Size cellSizeForTable(TableView *table) {
return winSize;
};
// 获取格子对象
virtual TableViewCell* tableCellAtIndex(TableView *table, ssize_t idx)
{
return _cells.at(idx);
}
//获取格子数量
virtual ssize_t numberOfCellsInTableView(TableView *table)
{
return _cells.size();
}
};
#endif
class TableView : public Layer, public TableViewDataSource, public TableViewDelegate
{
public:
TableView();
~TableView();
CREATE_FUNC(TableView);
bool init();
/// 来自数据源的虚函数
Vector<TableViewCell*> _cells;
Size winSize = Director::getInstance()->getWinSize();
void initDataSource()
{
for (int i = 0; i < 3; ++i)
{
TableViewCell* cell = TableViewCell::create();
_cells.pushBack(cell);
char buf[1024];
sprintf(buf, "Images/background%d.png", i + 1);
Sprite* sprite = Sprite::create(buf);
cell->addChild(sprite);
sprite->setPosition(winSize.width / 2, winSize.height / 2);
sprite->setTag(i);
}
}
// 获得Cell尺寸,
virtual Size tableCellSizeForIndex(TableView *table, ssize_t idx) {
return cellSizeForTable(table);
};
// 获得Cell尺寸
virtual Size cellSizeForTable(TableView *table) {
return winSize;
};
// 获取格子对象
virtual TableViewCell* tableCellAtIndex(TableView *table, ssize_t idx)
{
return _cells.at(idx);
}
//获取格子数量
virtual ssize_t numberOfCellsInTableView(TableView *table)
{
return _cells.size();
}
/// 来自触摸代理的虚函数
virtual void tableCellTouched(TableView* table, TableViewCell* cell)
{
CCLOG("cell idx is %d", cell->getIdx());
}
};
#endif
<pre name="code" class="html">#ifndef __TableView_H__
#define __TableView_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
#if 0
class MyDataSource : public TableViewDataSource
{
public:
Vector<TableViewCell*> _cells;
Size winSize = Director::getInstance()->getWinSize();
MyDataSource()
{
for (int i = 0; i < 3; ++i)
{
TableViewCell* cell = TableViewCell::create();
_cells.pushBack(cell);
char buf[1024];
sprintf(buf, "Images/background%d.png", i + 1);
Sprite* sprite = Sprite::create(buf);
cell->addChild(sprite);
sprite->setPosition(winSize.width / 2, winSize.height / 2);
sprite->setTag(i);
}
}
// 获得Cell尺寸,
virtual Size tableCellSizeForIndex(TableView *table, ssize_t idx) {
return cellSizeForTable(table);
};
// 获得Cell尺寸
virtual Size cellSizeForTable(TableView *table) {
return winSize;
};
// 获取格子对象
virtual TableViewCell* tableCellAtIndex(TableView *table, ssize_t idx)
{
return _cells.at(idx);
}
//获取格子数量
virtual ssize_t numberOfCellsInTableView(TableView *table)
{
return _cells.size();
}
};
#endif
class TableView : public Layer, public TableViewDataSource, public TableViewDelegate
{
public:
TableView();
~TableView();
CREATE_FUNC(TableView);
bool init();
/// 来自数据源的虚函数
Vector<TableViewCell*> _cells;
Size winSize = Director::getInstance()->getWinSize();
void initDataSource()
{
for (int i = 0; i < 3; ++i)
{
TableViewCell* cell = TableViewCell::create();
_cells.pushBack(cell);
char buf[1024];
sprintf(buf, "Images/background%d.png", i + 1);
Sprite* sprite = Sprite::create(buf);
cell->addChild(sprite);
sprite->setPosition(winSize.width / 2, winSize.height / 2);
sprite->setTag(i);
}
}
// 获得Cell尺寸,
virtual Size tableCellSizeForIndex(TableView *table, ssize_t idx) {
return cellSizeForTable(table);
};
// 获得Cell尺寸
virtual Size cellSizeForTable(TableView *table) {
return winSize;
};
// 获取格子对象
virtual TableViewCell* tableCellAtIndex(TableView *table, ssize_t idx)
{
return _cells.at(idx);
}
//获取格子数量
virtual ssize_t numberOfCellsInTableView(TableView *table)
{
return _cells.size();
}
/// 来自触摸代理的虚函数
virtual void tableCellTouched(TableView* table, TableViewCell* cell)
{
CCLOG("cell idx is %d", cell->getIdx());
}
};
#endif