UIViewController の loadView メソッドで、UIActivityIndicator を開始します。後で loadView で、複雑な UIView を読み込みます。読み込みには約 2 ~ 3 秒かかります。(より具体的には、多くの写真を含む UIScrollView )。私の問題は、UIActivityIndicator スピナーが、他のレイヤーも読み込まれた後にのみ表示されることです。(もちろん、これは私には役に立ちません)。これを処理する正しい方法は何ですか?
- (void)loadView {
CGRect fullScreenRect=[[UIScreen mainScreen] bounds];
UIView *contentView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 340, fullScreenRect.size.width)]autorelease];
self.view = contentView;
spinner = [[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];
spinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
spinner.center = self.view.center;
[self.view addSubview:spinner];
[spinner startAnimating];
scrollView=[[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 340, fullScreenRect.size.width)]autorelease];
...setting up scrollView...
[self.view addSubview:scrollView];
}
- (void)viewDidLoad
{
[super viewDidLoad];
[spinner removeFromSuperview];
}
やや似たスレッドを見つけました: UIActivityIndicatorView は、読み込みが完了するまで表示されません
しかし、バックグラウンド スレッドでロードすることをお勧めしますが、UIView のロードと表示は、私の知る限り、メイン スレッドでのみ可能です。
私は初心者で、私の質問が根本的に間違っていたら申し訳ありません。