有这样的代码,加载cocostudio中导出的布局文件。
shopLayer=UILayer::create();
shopLayout=dynamic_cast<UILayout*>(GUIReader::shareReader()->widgetFromJsonFile(goldRecharge));
shopLayer->addWidget(shopLayout);
this->addChild(shopLayer,10);
…
现在有这样的需求:我想新增一个CCLayerGradient对象到界面中去,但是不能遮挡住按钮

这是之前的做法
for(int i=0;igetChildren()->count();i++){
UIImageView* img_Item=dynamic_cast(scroll_item->getChildren()->objectAtIndex(i));
if(img_Item->getTag()==18){
//UIWidget* layer=UIWidget::create();
CCSprite* layer=CCSprite::create();
layer->setContentSize(CCSizeMake(img_Item->getContentSize().width-5,img_Item->getContentSize().height+5));
layer->setPosition(ccp(img_Item->getPositionX()/2+18,img_Item->getPositionY()/2+19));
ccColor4B black = ccc4(0, 0, 0, 255);
ccColor4B white = ccc4(0, 0, 0, 0);
CCLayerGradient* colorlayer=CCLayerGradient::create(black,white);
colorlayer->setContentSize(layer->getContentSize());
colorlayer->setPosition(layer->getPosition());
layer->addChild(colorlayer,99);
shopLayer->addChild(layer,99);
}
UIButton* btn_buy=dynamic_cast(img_Item->getChildByName("Button_Buy1"));
btn_buy->addTouchEventListener(this,toucheventselector(UIGoldRechargeLayer::payForGoldCallback));
}
-----------------------------
后来采用的是:
for(int i=0;igetChildren()->count();i++){
UIImageView* img_Item=dynamic_cast(scroll_item->getChildren()->objectAtIndex(i));
if(img_Item->getTag()==18){
UIWidget* layer=UIWidget::create();
//CCSprite* layer=CCSprite::create();
layer->setContentSize(CCSizeMake(img_Item->getContentSize().width-5,img_Item->getContentSize().height+5));
layer->setPosition(ccp(img_Item->getPositionX()/2+18,img_Item->getPositionY()/2+19));
ccColor4B black = ccc4(0, 0, 0, 255);
ccColor4B white = ccc4(0, 0, 0, 0);
CCLayerGradient* colorlayer=CCLayerGradient::create(black,white);
colorlayer->setContentSize(layer->getContentSize());
colorlayer->setPosition(layer->getPosition());
layer->addNode(colorlayer,99);
shopLayout->addChild(layer,99);
}
UIButton* btn_buy=dynamic_cast(img_Item->getChildByName("Button_Buy1"));
btn_buy->addTouchEventListener(this,toucheventselector(UIGoldRechargeLayer::payForGoldCallback));
} 然后就不显示遮罩了
