1 引入相关的头文件和继承相关类
引入:
#include"cocos-ext.h"
USING_NS_CC_EXT;
继承:
TableViewDataSource, TableViewDelegate
2.必须重写实现的父类的纯虚函数
//每个相应位置的tabelviewcell
TableViewCell* tableCellAtIndex(TableView* table, ssize_t idx)override;
//tableviewcell总个数
ssize_t numberOfCellsInTableView(TableView* table)override;
//触摸事件
void tableCellTouched(TableView* table, TableViewCell* cell)override;
3.创建TableView
//tableviewTest
auto tableview = TableView::create(this,Size(200,40));
tableview->setPosition(size.width/2,size.height/2);
tableview->setDelegate(this);
tableview->setDirection(ScrollView::Direction::HORIZONTAL);
//加载cell,若没有此函数则会只有一个cell显示
tableview->reloadData();
addChild(tableview);
4.头文件函数重写
//此方法不是必须的
Size TableLayer::tableCellSizeForIndex(TableView* table, ssize_t idx)
{
return Size(40,40);
}
TableViewCell* TableLayer::tableCellAtIndex(TableView* table, ssize_t idx)
{
auto tablecell = table->dequeueCell();
if (!tablecell)
{
tablecell = TableViewCell::create();
auto sprite = Sprite::create("CloseNormal.png");
sprite->setPosition(Vec2(20,20));
tablecell->addChild(sprite);
}
return tablecell;
}
void TableLayer::tableCellTouched(TableView* table, TableViewCell* cell)
{
CCLOG("cell touched at index: %ld", cell->getIdx());
}
ssize_t TableLayer::numberOfCellsInTableView(TableView* table)
{
return 10;
}