我使用CCTableView创建了一个下拉列表。它工作得很好。现在,当我选择任何条目时,我必须隐藏表格。所以我写了以下代码。
void Sample1::tableCellTouched(CCTableView* table, CCTableViewCell* cell)
{
CCLOG("cell touched at index: %i", cell->getIdx());
table->setVisible(false);
}
当执行此操作时,表变为不可见,但当我再次尝试使其可见时(CCTableView)不响应任何触摸,而其他按钮正在响应。
任何人都可以猜出可能出现的问题!?
答案 0 :(得分:0)
这是因为CCTableView本身会检查它是否可见,如果它不可见则不会处理触摸。 这是CCTableView.cpp中的负责部分:
if (!this->isVisible()) {
return;
}
此代码段位于ccTouchBegan
和ccTouchEnded
。
您的代理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;
}