0

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

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

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

谁能猜出可能出了什么问题!?

4

2 回答 2

0

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

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

此代码段位于ccTouchBegan和中ccTouchEnded

您的委托tableCellTouched将在 CCTableView 内部调用ccTouchEnded,因此您必须使您的表格在不依赖于 CCTableView 调用的函数中可见。

于 2013-06-26T09:11:57.073 回答
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);

}

返回表格单元格;

}

于 2013-12-23T12:30:01.000 回答