我正在使用CCTableView在cocos2dx中创建多个tableview。当我定义数据源方法“ numberOfCellsInTableView”时,我想为不同的TableViews返回不同的值。
所以我用了if-control语句。
但看来我无法正确检查病情。
我的CCLayer类的inti方法中的代码如下:-
CCLOG("init debug 10 %d",characterImageNameArray->count());
numberOfRowsIncharacterTable = characterImageNameArray->count();
this->characterTable = cocos2d::extension::CCTableView::create(this,cocos2d::CCSizeMake((winSize.width/6.0)-20, winSize.height-720.0));
其余的定义如下:
unsigned int numberOfCellsInTableView (cocos2d::extension::CCTableView * table)
{
CCLOG("init debug 11 ");
int rVal = 0;
if (table==this->characterTable) {
CCLOG("init debug 11a ");
rVal = this->characterImageNameArray->count();
}
CCLOG("init debug 12 rVal %d",rVal);
return rVal;
}
以下是控制台调试日志:-
Cocos2d: init debug 9
Cocos2d: init debug 10 6
Cocos2d: init debug 11
Cocos2d: init debug 12 rVal 0
Cocos2d: init debug 11
Cocos2d: init debug 12 rVal 0
Cocos2d: init debug 11
Cocos2d: init debug 12 rVal 0
我没有出什么问题?
最佳答案
我还在场景中呈现了不同的表视图,并且我采用了不同的方法。
我创建TableView* my_table_01 = Table_creation....
然后,将TAG_TABLE_01用作my_table_01->setTag(TAG_TABLE_01);
,对于其他表,依此类推,更改TAG。
当在numberOfCellsInTableView中时,我决定检查表TAG的单元格数量为:
if (table->getTag() == ....) return number_cells_for_this_table;
您还可以对单元格使用相同的方法,并具有多个表视图。