【 每日·槽】第1话 -- 论setEnabled和setVisible

— Begin quote from ____

引用第19楼flysec于2014-01-23 20:23发表的 :
我今天又被这个问题坑了。
前几天有两个VIEW做了隐藏,以为就没事了。过了几天忘记了这事,然后某一些东西无法点击了。查了半天。。原来是setvisible惹的祸,被盖住了,瓦擦!
悲剧啊! http://www.cocoachina.com/bbs/job.php?action=topost&tid=181496&pid=880055

— End quote

恭喜你中奖了!!!

支持楼主,叼!!!

主动管理会比较麻烦,不妨实时被动管理,有触发,就处理。
我在widget的onTouchBegan里面加了这么个判断:
if (!this->isVisible())
{
return false;
}
auto parent = this->getParent();
while (parent)
{
if (!parent->isVisible())
{
return false;
}else
{
parent = parent->getParent();
}
}

哈~你这个方法我还真没想到~~学习了,这样的话就不用考虑还原状态的问题了。@职业吐槽 你感觉这个方法怎么样?

挺好的,但我 10 楼的方法也不用 “考虑还原状态的问题” 啊

在 EventDispatcher:dispatchTouchEvent 做得visible 拦截
性能高点 而且对于被重载的 ontouchBegan 不必做多次拦截

:3::3: 也被坑过

ccui.Widget.setEnabled(false);对widget的子对象无效啊。
只是屏蔽了事件,但并没有隐藏。

setEnable只屏幕事件,setVisible才会隐藏。

新的版本没有setVisible了,只有setEnable来统一控制事件和显示,但是不好使。

楼主问下setvisible后的view还可以进行操作吗 比如对立面的label进行setsring什么的?

不知道哎。。很久没用CCS了,推荐http://Flax.so