在开发中经常要根据改变按钮等控件的显示状态和触摸事件,有两种方法一种是 1.setEnabled() 2.setVisible() 和 setTouchEnabled() 最初只是认为setEnabled = setTouchEnabled()和setVisible(). 有时候在底层设置了通过设置setEnabled(false) 隐藏了控件并不可触摸,但有时还是没有生效。 UIWidget代码如下:
void Widget::setEnabled(bool enabled)
{
_enabled = enabled;
if(_widgetChildren && _widgetChildren->count() > 0)
{
CCObject* child;
CCARRAY_FOREACH(_widgetChildren, child)
{
((Widget*)child)->setEnabled(enabled);
}
}
}
实际上已经生效,只是如果父节点设置了setEnabled(true),则会遍历所有子节点并设置设置_enabl