Cocos2dx CCTableView问题

时间:2013-06-24 09:50:46

标签: cocos2d-x

我使用CCTableView创建了一个下拉列表。它工作得很好。现在,当我选择任何条目时,我必须隐藏表格。所以我写了以下代码。

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

当执行此操作时,表变为不可见,但当我再次尝试使其可见时(CCTableView)不响应任何触摸,而其他按钮正在响应。

任何人都可以猜出可能出现的问题!?

2 个答案:

答案 0 :(得分:0)

这是因为CCTableView本身会检查它是否可见,如果它不可见则不会处理触摸。 这是CCTableView.cpp中的负责部分:

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

此代码段位于ccTouchBeganccTouchEnded

您的代理tableCellTouched将在CCTableView的ccTouchEnded内调用,因此您必须在不依赖于来自CCTableView的调用的函数中显示您的表。

答案 1 :(得分:0)

用于在CCTable中添加Tablecell

创建一个名为CustomClass的类:

在CustomClass.cpp

CCTableCell * CustomClass :: tableMethod(CCTable * pTable,unsigned int idx)

{

CCTableCell * tableCell = pTable-> dequeueCell();

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

的addChild(TableCell的);

}

return tableCell;

}