【发布时间】:2020-02-12 06:44:20
【问题描述】:
我知道这个问题在 StackOverflow 上被问过很多次,但我已经检查过了。我的问题是在从 api hit 得到响应后,我正在主线程上更新这样的进度条
dispatch_async(dispatch_get_main_queue(),^{
for (int i = 0; i < 5000; i++)
{
NSLog(@"%f",i);
[progressView setProgress:i/5000 animated:YES];
}
});
从这种方式我的进步没有更新 但是当我设置静态数字时它正在工作
[progressView setProgress:0.7 animated:YES];
经过搜索,我发现浮点十进制数字存在问题。因为 i/5000 即使在 4999/5000 上也总是给出 0.000000。所以在谷歌搜索后我改变了
dispatch_async(dispatch_get_main_queue(),^{
for (int i = 0; i < 5000; i++)
{
float f = (float)i/5000;
[progressView setProgress:f animated:YES];
}
});
现在它正在更新,但进度视图不会连续更新,它是从 0 到 1 的最后一次跟踪更新
【问题讨论】:
-
嗨@yatendra 整个
dispatch_async代码在哪里?在函数中? -
我在dispatch_async中只写了这个循环代码
标签: ios objective-c swift progress-bar