Cocos2d-x TableView 分析
刚接触 cocos2d-x 的时候什么都不懂,项目中用到的 tableview 比较多,总是会遇到各种各
样的关于 tableview 的问题。后面总结了一下,其实 tableview 主要有一下几个重要的部分:
1. 初始化 TableView InitTableViewLayer()
可以 create 一个 tableview 对象,并对其设置一些属性,比如横竖设置:setDirecon,元素
显示序列 setVercalFillOrder,等等
2. 需要显示的元素个数 numberOfCellsIntableView
这个函数主要是返回你总共需要显示的 cell 个数
3. 创建 cell tableCellAtIndex(cocos2d::extension::CCTableView *table, unsigned int idx)
4. 如果你要刷新 tableview 的话 需要先断开 cell 的关系,调用 m_pTableView->reloadData();
我也是个菜鸟,有好多也不懂,我觉得大概的主要过程就这些了。
下面贴一段代码:
XXX.h 文件
class CSkillExchangeTableView : public UIExt::CTableViewBaseLayer
{
public:
CREATE_FUNC(CSkillExchangeTableView);
CSkillExchangeTableView();
~CSkillExchangeTableView();
virtual bool init();
virtual unsigned int numberOfCellsInTableView(cocos2d::extension::CCTableView
*table);
virtual void tableCellTouched(cocos2d::extension::CCTableView* table,
cocos2d::extension::CCTableViewCell* cell);
public:
virtual bool InitTableViewLayer();
virtual cocos2d::extension::CCTableViewCell*
tableCellAtIndex(cocos2d::extension::CCTableView *table, unsigned int idx);
void setSkillExchangeUnID(uint32_t ID);
void ReleaseParentInfo();
public:
bool InitSkillExchangeViewInfo();
bool UpdateAllCell();
void ScaleSprite(CCNode* InSender, void* infoTouch);
private:
CSkillDuiHuanItem* createNode(int32_t idx);
private: