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 に答える