Pet*_*erK 1 objective-c uiprogressview
我正在加载一个文件,并希望在UIProgressView中显示进度.我可以设置初始值:
[loadingProgressView setProgress: 0.00];
Run Code Online (Sandbox Code Playgroud)
..in viewDidLoad这完美无缺.
我唯一要做的就是在每个循环中向条添加0.1,但它不会更新:
while (eOF != 99999) {
...
[loadingProgressView setProgress:loadingProgressView.progress + 0.10];
}
Run Code Online (Sandbox Code Playgroud)
我已经检查过,但每次循环时都没有真正找到任何更新栏的内容.
有人可以就此分享一些建议吗?
--- UPDATE ---
尝试了这个没有成功:
while (eOF != 99999) {
...
[loadingProgressView setProgress:loadingProgressView.progress + 0.10];
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]];
}
Run Code Online (Sandbox Code Playgroud)
jba*_*100 11
您正在循环阻塞主线程的while循环,UI元素将无法刷新,直到主线程变为可用.解决此问题的最佳方法是在后台线程中运行此代码(在主线程上进行UI调用).
或者(我不确定这个,看到这个讨论)你通过调用让主线有一些喘息的空间
NSDate* futureDate = [NSDate dateWithTimeInterval:0.001 sinceDate:[NSDate date]];
[[NSRunLoop currentRunLoop] runUntilDate:futureDate];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6053 次 |
| 最近记录: |