#ifndef __TableView_H__
#define __TableView_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
class TableView : public Layer, public TableViewDataSource
{
public:
TableView();
~TableView();
CREATE_FUNC(TableView);
bool init();
Size _cellSize = Size(40, 40);
Vector<TableViewCell*> _cells;
// 获得Cell尺寸,
virtual Size tableCellSizeForIndex(TableView *table, ssize_t idx) {
if (idx == 2)
{
return Size(_cellSize.width*1.5, _cellSize.height);
}
return cellSizeForTable(table);
};
// 获得Cell尺寸
virtual Size cellSizeForTable(TableView *table) {
return _cellSize;
};
// 获取格子对象
virtual TableViewCell* tableCellAtIndex(TableView *table, ssize_t idx)
{
return _cells.at(idx);
}
//获取格子数量
virtual ssize_t numberOfCellsInTableView(TableView *table)
{
return _cells.size();
}
};
#endif
<pre name="code" class="html">#include "TableView.h"
TableView::TableView()
{
}
TableView::~TableView()
{
}
bool TableView::init()
{
Layer::init();
// 初始化_Cells
for (int i = 0; i < 12; ++i)
{
TableViewCell* cell = TableViewCell::create();
_cells.pushBack(cell);
Sprite* sprite = Sprite::create("CloseNormal.png");
cell->addChild(sprite);
sprite->setPosition(_cellSize.width / 2, _cellSize.height / 2);
}
TableView* view = TableView::create(this, Size(_cellSize.width*3, _cellSize.height));
addChild(view);
view->setDirection(ScrollView::Direction::HORIZONTAL);
view->reloadData();
auto winSize = Director::getInstance()->getWinSize();
view->setPosition(winSize.width / 2, winSize.height / 2);
return true;
}