applicationDidFinishLaunching:withOptions:
メソッドが戻るまで、ビューは UI に表示されないことに注意してください。UIActivityIndicatorView
を設定して、すぐに表示されることを期待することはできません。現在の実行ループが終了するまで、iOS は UI を更新しません。表向きDefault.png
は の実行中に表示され、そのメソッドが完了するまで UI を引き継ぐことはありませんapplicationDidFinishLaunching:withOptions:
。rootViewController
UIActivityIndicatorView
アプリが起動していることをユーザーに示すために を表示したい場合Default.png
は、次のようにすることができます。
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]];
spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.frame = CGRectMake(0.0, 0.0, 60.0, 60.0);
spinner.center = CGPointMake(imageView.center.x, imageView.center.y);
spinner.alpha = 1.0;
spinner.layer.shadowColor = [UIColor grayColor].CGColor;
spinner.layer.shadowRadius = 1;
spinner.layer.shadowOpacity = 0.5;
spinner.layer.shadowOffset = CGSizeMake(0, 1);
[spinner startAnimating];
[imageView addSubview:spinner];
[self.window addSubview:imageView];
[self.window makeKeyAndVisible];
dispatch_async(dispatch_get_main_queue(), ^{
// The rest of your method here
// Be sure to remove the UIImageView from the window when the processing is complete.
});
このようにして、applicationDidFinishLaunching:withOptions:
制御が iOS に戻り、ビューが表示されます。をロードしたらrootViewController
、ウィンドウから削除できimageView
ます。
また、 を にUIActivityIndicatorView
直接追加UIWindow
することはお勧めできませんが、上記で示したように、既にウィンドウのサブビューである既存のビューに追加する必要があります。
これが役立つことを願っています。