这有点难以解释,所以我包括一张照片。
所以我有一个滚动视图(黄色部分),然后是一个带有分数的叠加框和玩家购买的升级数量等。带有标签的绿色框保持在相同的位置,而黄色部分滚动。这很好,除了我试图让玩家购买物品时改变标签。所以,让我们说玩家购买镐。所拥有的升级应从" 0/20"到" 1/20"。
这是我的设置。我顺便使用SpriteBuilder。我有一个处理scrollview的类,比如购买按钮和描述等等。然后我有另一个类只用于侧面的叠加,这基本上是它的唯一方法:
- (void)didLoadFromCCB {
if (_doge < 1000000000000) {
balanceLabel.string = [NSString stringWithFormat:@"%.2Lf", _doge];
} else {
balanceLabel.string = @"A lot!";
}
upOwnedLabel.string = [NSString stringWithFormat:@"%d", _upOwned];
upMaxedLabel.string = [NSString stringWithFormat:@"%d", _upMaxed];
NSLog([NSString stringWithFormat:@"%d", _upOwned]);
}
我已经尝试了一些事情,我认为这是最正确的事情#34;在滚动类的didLoadFromCCB中,我有这个:
UpgradesScene *upgradesScene = [[UpgradesScene alloc] init];
[upgradesScene didLoadFromCCB];
它位于正确的位置(在购买按钮下)但由于某种原因它不会更新标签。我收到一条NSLog消息告诉我关卡的级别,但由于某些原因标签不起作用。
我对这种语言很陌生,所以请放轻松我:)谢谢
答案 0 :(得分:0)
问题是您正在使用alloc init创建新的upgradesScene,而不是获取对滚动视图中的引用的引用。你应该拥有一个属性(或IBOutlet,如果你在IB中做到这一点)指向该视图。