時間がかかるいくつかの UI 要素をインスタンス化している間に、プログレスバーを更新したいと思います。まず、viewLoad メソッドでビューを作成し、そこにプログレス バーを追加します。ビューが viewDidAppear メソッドに表示されたら、いくつかの uikit オブジェクトのインスタンス化を行っていますが、その間にプログレス バーを更新したいと考えています。UI要素であるため、すべてがメインスレッドで発生する必要があるため、続行する方法がわかりません。
ここに私のコードの一部があります:
-(void) viewDidAppear:(BOOL)animated
{
// precompute the source and destination view screenshots for the custom segue
self.sourceScreenshotView = [[UIImageView alloc] initWithImage:[self.view pw_imageSnapshot]];
[self.progressBar setProgress:.3];
SCLViewController *rvc = [[SCLViewController alloc] init];
UIView *destinationView = rvc.view;
destinationView.frame = CGRectMake(0, 0, kWidthLandscape, kHeightLandscape);
self.destinationScreenshotView = [[UIImageView alloc] initWithImage:[destinationView pw_imageSnapshot]];
[self.progressBar setProgress:.5];
}
上記のコードでは、後で使用するビューのスクリーンショットを 2 つ作成するだけです。問題は、進行状況を進行状況バーに設定するときに最後の更新 (.5) しか表示されないことです。この更新を行う適切な方法は何ですか?