现在tableview 中加了button。reloadData之后,Button按钮点击事件失效。。
发现创建的时候按钮也会点击不了,必现的Bug…
是不是事件被拦截了?
好像是,我看了代码,TableView 跟 ScrollView 代码没怎么改。CCEventDispatcher.cpp 倒是改了很多,相比于3.12, 但暂时不知道是哪里的问题。。尴尬。。。
新版本(3.16)在CCNode.cpp 里面的cleanup()方法中加了这个
_eventDispatcher->removeEventListenersForTarget(this);
果然是 谢了哥们。。好想吐槽官方开发人员。。
我这个3.16版本原本就有这一句,但还是不行
void Node::cleanup()
{
#if CC_ENABLE_SCRIPT_BINDING
if (_scriptType == kScriptTypeJavascript)
{
if (ScriptEngineManager::sendNodeEventToJS(this, kNodeOnCleanup))
return;
}
else if (_scriptType == kScriptTypeLua)
{
ScriptEngineManager::sendNodeEventToLua(this, kNodeOnCleanup);
}
#endif // #if CC_ENABLE_SCRIPT_BINDING
// actions
this->stopAllActions();
// timers
this->unscheduleAllCallbacks();
_eventDispatcher->removeEventListenersForTarget(this);
for( const auto &child: _children)
child->cleanup();
}
它意思是加了这个,导致出问题的,把这句去掉试试,解决的话反馈一下