2013-06-24 48 views
0

我使用CCTableView製作了一個下拉列表。它的工作相當好。現在,當我選擇任何條目時,我必須隱藏表格。所以我寫了下面的代碼。Cocos2dx CCTableView問題

void Sample1::tableCellTouched(CCTableView* table, CCTableViewCell* cell) 
{  
    CCLOG("cell touched at index: %i", cell->getIdx()); 
    table->setVisible(false); 
} 

當這樣執行表變爲不可見,但是當我再次嘗試使其可見它(CCTableView)沒有任何迴應觸及,而其他按鈕響應。

有人能猜到什麼可能會出錯!?

+0

您是如何在CCTableView中添加單元格的?你可以分享嗎? – Jason

回答

0

這是因爲CCTableView自身檢查,如果它是可見的,並且不會處理觸摸,如果它是不可見的。 這裏負責的部分CCTableView.cpp:

if (!this->isVisible()) { 
    return; 
} 

這個片段既是ccTouchBeganccTouchEnded

你委託的tableCellTouched將被稱爲CCTableView的ccTouchEnded裏面,所以你必須讓你的表中的功能是不依賴於從CCTableView電話可見。

0

對於CCTable

添加的TableCell

將名爲CustomClass類:

在CustomClass.cpp

CCTableCell * CustomClass :: tableMethod(CCTable * PTABLE,無符號整型IDX)

{

CCTableCell *的TableCell = pTable-> dequeueCell();

if(!tableCell) 
{ 
    tableCell = new CCTableCell(); 

addChild(tableCell);

} 

return tableCell;

}