【问题标题】:Changing overlaying labels text on a ScrollView更改 ScrollView 上的覆盖标签文本
【发布时间】:2014-06-27 19:25:17
【问题描述】:

这有点难以解释,所以我附上一张图片。

所以我有一个滚动视图(黄色部分),然后是一个覆盖框,上面有分数以及玩家购买了多少升级等。带有标签的绿色框保持在同一位置,而黄色部分滚动。这很好用,除了我试图在玩家购买物品时更改标签。假设玩家购买了一把镐。拥有的升级应从“0/20”更改为“1/20”。

这是我的设置。顺便说一句,我正在使用 SpriteBuilder。我有一个处理滚动视图的类,比如购买按钮和描述等...然后我有另一个类只用于侧面的覆盖,这基本上是其中唯一的方法:

- (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]);
}

我尝试了一些方法,这是我认为“最正确”的方法。在滚动类的 didLoadFromCCB 中,我有这个:

UpgradesScene *upgradesScene = [[UpgradesScene alloc] init];
[upgradesScene didLoadFromCCB];

它在正确的位置(在购买按钮下),但由于某种原因它没有更新标签。我确实收到一条 NSLog 消息告诉我级别,但由于某种原因标签不起作用。

我对这门语言很陌生,所以请放轻松:) 谢谢

【问题讨论】:

  • 你检查过object是否为nil吗?

标签: ios scrollview labels updating


【解决方案1】:

问题是您正在使用 alloc init 创建一个新的 upgradesScene,而不是获取对滚动视图中的引用。您应该有一个指向该视图的属性(或 IBOutlet,如果您在 IB 中进行此操作)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多