我试图像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
}
答案 0 :(得分:0)
这里有一些问题:
您正在阻止主线程,因此应用只会显示循环的最终结果,而不是进度。这里的解决方案是使用CADisplayLink或NSTimer一旦勾选就更新计数器并让应用程序自由地实际绘制更改。
你只是在没有任何减速的情况下进行循环,变量更新的时间远远少于一秒钟。这与之前提出的解决方案有关,但如果您希望标签每秒更改一次,您可以设置一个计时器,将其设置为小于一秒(因为计时器中的时间值是等待的最短时间)并更新通过从当前时间减去开始时间来显示文本标签。当您的设备获得更大的CPU负载时,这种方法可以保护您免受时钟失真的影响。
答案 1 :(得分:-1)
您的正常循环从0到59.您需要1秒的延迟才能实际每秒递增