我希望每次函数循环通过循环时都能够执行延迟。我已经有一个循环设置,如下所示:
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
是我试图从 1 到 0 每 9 秒递减 0.01 直到值达到 0 的变量。程序的总长度应该是 900 秒(15 分钟)。每 9 秒,我希望此代码每 9 秒执行一次并更改被UIProgressView
调用的值batteryLevel
。然后,我想乘以batteryPercentage
100,得到一个整数百分比,比如乘以 0.67 得到 67,然后将batteryLevelLabel
文本替换为新值。当我尝试执行此操作时,batteryLevel
进度视图根本不会填充,文本也不会改变。我假设计时器有问题,那么输入 9 秒延迟的更有效方法是什么?