スレッドを使用して進捗バーを更新する場合は、explayned hereとします。Objecive C - ループ後にNSProgressIndicatorを削除/非表示にする
: は- プログレスバーが表示 を
- は、プログレスバーがループを使用して更新される
- プログレスバーが
消えるこれが私のコードで次のようになります。 私はこの結果を達成しようとしています
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内で定義されています。
NSProgressIndicator *progressBar
問題はバーがループの最後で削除されていないprogressBar.hidden = YES;
がこのように動作するかどうか、私にはわからないということです。
誰かが私を助けることができますか?コードスニペットは実際には便利です。説明が続く場合は特に便利です。
主な問題は、progressBar.hiddenが残りのプログレスバー更新のようにメインキューにディスパッチされていないことです。 – Rob