更改不同图层中标签的标签颜色
所以我有一个名为MainScene
的场景,其中包含名为UpgradesNew
CCScrollView
UpgradesScroller
所在的位置。 我有一个button,当在MainScene
点击时,应该将hasItem
布尔值设置为YES
,然后在未隐藏图层UpgradesNew
时,应根据布尔值的输出更改标签颜色。
这是我试过的。
将hasItem
设置为true:
-(void) buyItem { hasItem = true; } }
在MainScene
这是UpgradesNew
MainScene
隐藏的方法。
-(void)Upgrades { UpgradesNew *upNew = [[UpgradesNew alloc]init]; [upNew changeColor]; if (upgradesScroller.visible == NO) { upgradesScroller.visible = YES; } else if (upgradesScroller.visible == YES) { upgradesScroller.visible = NO; } }
在UpgradesNew
-(void)changeColor { if (hasItem == true) { label.color = [CCColor greenColor]; NSLog(@"changecolor"); } }
我认为这个问题是因为我正在分配一个UpgradesNew的空实例。 但我不知道如何以正确的方式做到这一点。
问题是有点混乱,信息有点不完整,但我只能假设问题在这里:
UpgradesNew *upNew = [[UpgradesNew alloc]init];
我猜UpgradesNew
是某种你已经实例化并在屏幕上显示的视图或视图控制器。 当你调用[[UpgradesNew alloc] init];
,你正在创build一个新的对象。 您所需要的是对您打算更改的当前存在的UpgradesNew
对象的引用。 您需要在这个现有的对象上调用changeColor
方法,而不是创build一个新的对象。
编辑:如果你想得到如何获得正确的对象的引用的帮助,你需要在你的问题更多的细节 – 作为书面,这些对象之间的关系没有太多的提示。