coco2d-x3.3 TableView问题(版主请进)

tableView = TableView::create(this, Size(323,181));
    tableView->setDirection(cocos2d::extension::ScrollView::Direction::VERTICAL);
    tableView->setPosition(Vec2::ZERO);
    tableView->setVerticalFillOrder(TableView::VerticalFillOrder::TOP_DOWN);
    tableView->setDelegate(this);
    tableView->reloadData();
    this->addChild(tableView, 1); 


```


void xxxxxx::tableCellTouched(TableView* table, TableViewCell* cell)
{
    tableView->removeFromParentAndCleanup(true);
}


```


如果这样写的话 这里会报错
void ScrollView::onTouchEnded(Touch* touch, Event* event)
{
    if (!this->isVisible())
    {
        return;
    }
    ...............
    .........
}


```


请问一下啊版主这是什么应用层的错误还是BUG;

tableView->removeFromParentAndCleanup(true);
这是要做什么呢?

是不是想这样
table->removeFromParentAndCleanup(true);

是的!就是移除这个tableView。

问题解决了么?

没有!所以我才来询问!我单独写了几个,只要这样调用移除,就会出问题,不移除的话就不会,我才来问问你是否遇到过,这是我的应用层写错了,还是这是BUG,我的版本为3.3final

:9: 楼主 你蛋疼无比。。。 创建了 点击 了就删除 闲着蛋疼.

removeFromParent

tableCellTouched这个方法是tableView返回给当前实例执行的,
你在这里把tableView直接删掉了,他再回去就不能执行他的代码了吧,个人猜测,因为从来没这么做过(在执行自己的方法期间删掉自己这种事情。。)

你尝试在这个tableCellTouched函数里设置一个deleteFlag值,在你的xxxx类的touchEnd里面再删掉tableView试试。

你做过头像选择这些吗?如果做过,说一下思路,没做过,先做了来,再说。谢谢回复

好吧!谢谢版主了,我也是这么避免的!不用设置deleteFlag值,可以直接在touchEnd里面判定是否点击,因为以前在2.2.5里面这样写是没有问题的,但是在3.3里面同样的思路实现不了!有点蛋疼,所以我想问问看这个问题是什么原因!非常感谢你的回复!希望下个版本能够改进一下:14:

我觉得TableView粒度太粗不灵活,不喜欢用,这个tableCellTouched还有点击空白区域也会响应的问题,
所以我喜欢用ScrollView。