2012-02-15 12 views
0

画像化された名前Default.pngがあります。これは、アプリケーションの起動時に読み込まれます。今私はそれに活動インジケータを追加する必要があります。だからそれは回転し、アプリを見栄えさせる。アクティビティインジケータを追加する既定の画像コードを指定しました

アプリの読み込み中にUIコンポーネントを追加できないことはわかっています。だから、私はUIActivityIndicatorをのdidFinishLaunchingWithOptionsメソッドに追加すると考えました。

これは以下の手順です。 iはdefault.png 追加された活動の指標その後、

[window addSubView:view]; 

しかし、何もhapence

を追加したビュー を追加しました。

このコードを書く方法を教えてください。

答えて

1

一時的に(必ずしも別のUIViewContoller、ではない)あなたは正しい軌道に乗っているが、あなたはあなたの窓に別のUIViewを追加する必要があります。私はこの種のことをしばしばやります。ここにあなたのapplicationDidFinishLaunching:withOptions:方法のために適切であろういくつかのコードです:

[window makeKeyAndVisible] 
... 

// Create and show an overlay view with a spinner 
UIImage *defaultImage = [UIImage imageNamed:@"Default.png"]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:defaultImage]; 
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] 
      initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; 
// Position the spinner appropriately for our splash image so it's not obscured 
CGRect frame = spinner.frame; 
frame.origin.x = imageView.frame.size.width/2 - frame.size.width/2; 
frame.origin.y = imageView.frame.size.height/5 * 4 - frame.size.height/2; 
spinner.frame = frame; 
[spinner startAnimating]; 
[spinner setHidesWhenStopped:YES]; 

startupView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 
[startupView addSubview:imageView]; 
[imageView release]; 
[startupView addSubview:spinner]; 
[spinner release]; 
[window addSubview:startupView]; 

IVAR startupViewアプリデリゲートに属し、後から起動シーケンス中の別の方法は、ビューからそれをフェージングによって優雅にそれを削除します。

UIActivityIndicatorView *spinner = [[startupView subviews] lastObject]; 
[spinner stopAnimating]; 
[UIView animateWithDuration:1.0 
         delay:0 
        options:UIViewAnimationOptionCurveLinear 
       animations:^(void) { 
        startupView.alpha = 0.0; 
       } completion:^(BOOL finished) { 
        [startupView removeFromSuperview]; 
        [startupView release]; 
       }]; 

このようなスプラッシュ画面は、Appleの見解では「推奨」スタートアップ画面ではないことに言及することは重要です。しかし、彼らはそれらを持っているアプリを拒否していないようです。

+0

ありがとうございました。削除するアクティビティインジケータコード(コードの2番目の部分)を追加する必要があります。どの方法でそれを含めるべきですか? – shajem

+0

と[ウィンドウのmakeKeyAndVisible] は何をしますか? – shajem

+0

起動と初期化を完了したことがある場合は、スプラッシュ画面を削除するコードを入力する必要があります。たとえば、 'applicationDidFinishLaunching'から、UIの初期化やデータの読み込みを行う別のメソッドを呼び出すことができます(または非同期ブロック内で呼び出すこともできます)。それが完了すると、スプラッシュを削除することができます。 'makeKeyAndVisible'は、ウィンドウを表示し、他のウィンドウの上に表示するようにウィンドウに指示します。 –

0

私はあなたが "カスタムスプラッシュスクリーン"をしたいと思いますか?
このようにアクティビティインジケータを追加することはできません。
ビューコントローラを追加する必要があります。このビューでは、コントローラはアクティビティインジケータで必要なものを実行します。

+0

どこからこのViewCOntrollerを呼び出しますか?メソッドから – shajem

+0

- (BOOL)アプリケーション:(UIApplication *)アプリケーションdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions。このメソッドでは、SplashScreenViewControllerをself.window.rootViewControllerとして設定します。 –

+0

もちろん、新しいView Controllerを作成する必要がありますSplashScreenViewControlle –

関連する問題