cocos2dx里面怎么实现点击tableview中的一个cell后让tableview自动消失?

我做了一个按钮,点击会弹出一个tableview,类似于下拉菜单的样子。我想做成点击其中的一个cell,然后tableview自动消失的效果。网上的各种tableview的帖子都是在讲怎么创建tableview,没有说怎样释放。现在我用removechildbytag的方式去销毁tableview和tableview的背景会出现各种问题,想试着setvisible来隐藏tableview也不是很常规的解决方法,有没有人能稍微指导我一下该如何正确的在相应点击事件后销毁tableview呢?拜谢了!!

在tableview的tableCellTouched(TableView* table, TableViewCell* cell)方法中加入如下代码:

int cellNo= cell->getIdx();//取得点击的cell编号
if(cellNo==9)//假设编号9的cell是你想要点击关闭的那个cell
{
cell->getParent()->removeFromParentAndCleanup(true);//把这个tableview删除。
}

cell->getParent()就是取得那个tableview,然后用removeFromParent就把这个tableview从他的上一级中移除掉。

1赞

采用这种方式在调试的时候,当我点击一个cell后,会崩溃在tableview下一层scrollview的onTouchEnded里面,提示this指针exc_bad_access,应该是他想获取tableview的指针但是已经被释放掉了。

后来我试着在点击cell的时候采用scheduleOnce创建一个事件,在响应事件里处理removefromparentandcleanup(),然后就一切正常了。

非常感谢你的帮助!