Я создаю более одной таблицы в cocos2dx, используя CCTableView. Когда я определяю метод DataSource «numberOfCellsInTableView», я хочу возвращать разные значения для разных таблиц.
поэтому я использовал оператор if-control.
но кажется, что я не могу проверить состояние должным образом.
код в методе inti моего класса CCLayer выглядит следующим образом:
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;
Вы также можете использовать тот же подход для размера ячейки и иметь несколько табличных представлений.