0

我班上有一个UILabel,我希望视图显示数字,但要数到数字。例如,如果数字是 368,它会迅速攀升至 250-300,然后在到达该数字时开始减速。现在这个数字不会一直是 368,数字会有所不同。它可能是 6 或 129 或 1023,所以它不能是一个固定的数字。我显然知道如何创建它,UILabel因为我已经在我的应用程序中使用了它,我只需要帮助向上计数。

我有一个“玩家视图”,等等等等,他们得到一个分数,它被传递到另一个视图“游戏结束视图”,分数显示在UILabel.

这是“播放器视图”传递数据的代码:

//finalScore is a int and so is currentScore
    second.finalScore = self.currentScore;

以下是“Gameover 视图”传递数据的代码:

- (void)viewWillAppear:(BOOL)animated {
    // scoreLabel is the IBOutlet to the UILabel in IB for displaying the score.    
    self.currentIndex++;
    if(self.currentIndex == [self.numbersArray count]) self.currentIndex = 0;

    self->scoreLabel.text = [NSString stringWithFormat:@"%d",self->finalScore];
}

提前致谢!

4

4 回答 4

1

我自己想通了。我找到了这个控件,它就像我需要的那样工作!点击这里

于 2013-10-06T01:00:18.480 回答
0

您可以使用 Timer 在循环中更新 UILabel 对象。随着时间以一定的间隔前进,通过增加时间差来“放慢速度”。通过 Timer 更新 UI 对象的示例代码是 Internet 上的常见代码,因为它是您编写进度条的方式。

如何使用iphone应用程序中的进度条

于 2013-10-05T23:38:17.650 回答
0

只需每隔一定的时间间隔(例如每 0.1 秒)调用此方法,使用NSTimer

它会将值增加到目标数字。

-(void)countUp:(id)sender {
    int targetNumber = yourNumber;
    int currentNumber = [[myLabel text] intValue];

    // Calculate the increment for this time. Mess with this for different speeds. 
    // Just multiply some of the numbers by some constants (ex. 2) until you 
    // achieve the desired effect.
    double increment = (targetNumber - currentNumber) / targetNumber;
    NSString *newValue = [NSString stringWithFormat:@"%f",currentNumber + increment];
    [myLabel setText:newValue];
    if ([newValue doubleValue] >= targetValue) {
        [(NSTimer *)sender invalidate];
    }


}

对于计时器:

[NSTimer scheduledTimerWithInterval:0.1 
                             target:self 
                           selector:@selector(countUp:) 
                           userInfo:nil 
                            repeats:YES];
于 2013-10-05T23:44:10.803 回答
0

使用文字变得很容易玩

 UILabel * label;
 label.text = @(label.text.integerValue+1).stringValue;
于 2013-11-15T08:10:34.387 回答