使用标签显示数字

时间:2016-05-08 09:35:08

标签: objective-c

我试图像Sec min和Hr那样跟踪这个循环。但是显示(标签)打印出此59,59,59而不是从0开始并继续。所以我希望看到这些数字正在增加。我该怎么做?

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    int i;

    for(i=0; i<60; i++)
    {
        for (int j=0; j<60;j++){
            for(int d=0;d<60;d++){

                self.timer.text =[NSString stringWithFormat: @"%i, %i, %i", i,j,d];
            }
        }
    }


    // Do any additional setup after loading the view, typically from a 
}

2 个答案:

答案 0 :(得分:0)

这里有一些问题:

  • 您正在阻止主线程,因此应用只会显示循环的最终结果,而不是进度。这里的解决方案是使用CADisplayLink或NSTimer一旦勾选就更新计数器并让应用程序自由地实际绘制更改。

  • 你只是在没有任何减速的情况下进行循环,变量更新的时间远远少于一秒钟。这与之前提出的解决方案有关,但如果您希望标签每秒更改一次,您可以设置一个计时器,将其设置为小于一秒(因为计时器中的时间值是等待的最短时间)并更新通过从当前时间减去开始时间来显示文本标签。当您的设备获得更大的CPU负载时,这种方法可以保护您免受时钟失真的影响。

答案 1 :(得分:-1)

您的正常循环从0到59.您需要1秒的延迟才能实际每秒递增