【发布时间】:2016-12-24 22:38:19
【问题描述】:
我想使用线程更新进度条,如here 所示。 我正在努力实现这个结果:
- 进度条变为可见
- 使用循环更新进度条
- 进度条消失
这是我的代码:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
progressBar.hidden = NO;
for (NSInteger i = 1; i <= progressBar.maxValue; i += 20){
[NSThread sleepForTimeInterval:1.0];
dispatch_async(dispatch_get_main_queue(), ^{
[progressBar setDoubleValue:(double)i];
[progressBar displayIfNeeded];
});
}
progressBar.hidden = YES;
});
进度条在我的 ViewController.h int 中是这样定义的:
NSProgressIndicator *progressBar
问题是循环结束时bar没有去掉,不知道progressBar.hidden = YES;是不是这样工作的。
有人可以帮助我吗?一个代码 sn-p 将非常有用,特别是如果它后面有解释。
【问题讨论】:
-
主要问题是
progressBar.hidden没有像其他进度条更新一样被分派到主队列。
标签: ios objective-c nsprogressindicator