我希望能够在函数每循环一次循环时执行延迟。我已经有一个环的设置,如下所示:Objective-C时间延迟
for (float batteryPercentage = 1; batteryPercentage <= 0; batteryPercentage -= 0.01)
{
double timeUntilNextDegreeDrop = 9.0;
dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeUntilNextDegreeDrop * NSEC_PER_SEC));
dispatch_after (time, dispatch_get_main_queue(), ^(void)
{
[batteryLevel setProgress:batteryPercentage animated:YES];
float batteryLevelPercentage = batteryPercentage * 100;
batteryLevelLabel.text = [NSString stringWithFormat:@"Battery Level: %f%%", batteryLevelPercentage];
});
}
batteryPercentage
是我试图通过0.01每9秒内从1递减到0直到该值到达0的节目的总长度可变应900秒(15分钟)。每9秒钟,我希望此代码每9秒执行一次,并更改名为batteryLevel
的UIProgressView
的值。然后,我想将batteryPercentage
乘以100,得到整个百分比数字,例如乘以0.67得到67,然后用新值替换batteryLevelLabel
文本。当我尝试执行此操作时,batteryLevel
Progress View不会填充,文本也不会更改。我假设计时器有问题,那么输入9秒延迟的更有效方法是什么?
你为什么不使用'NSTimer'? – Wain
@Wain如果我要实现一个'NSTimer',我会怎么做呢? – James
http://stackoverflow.com/questions/1449035/how-do-i-use-nstimer/1449104#1449104 – Wain