2014-04-30 88 views
0

我使用CCTableView在cocos2dx中創建多個tableviews。當我定義DataSource方法「numberOfCellsInTableView」時,我想爲不同的TableView返回不同的值。cocos2dx:在CCTableViwe中返回多個numberOfCellsInTableView時的問題?

所以我用if控制語句。

但似乎我無法正確檢查條件。

代碼在我CCLayer類的INTI方法如下: - IS

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)); 

定義REST如下: -

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 

我沒有得到什麼問題?

回答

1

我也在我的場景中呈現不同的tableviews,我遵循不同的方法。

我創建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; 

您也可以使用單元大小相同的方法,並有多個tableviews。

+0

同樣在這裏,我使用這種方法。但是這個問題是在數據源方法被調用後設置了標記值。所以我得到table-> getTag()總是爲零。 –