2012-01-25 7 views
0

私はtabbarcontrollernavigationcontrollerからなるプロジェクトを作成しました。プロジェクトにスプラッシュスクリーンを追加する

最初のビューまたは最初のタブは、tableviewコントローラです。今私は私のアプリケーションにスプラッシュスクリーンを追加する必要があるので、アプリケーションがロードされると、それは歓迎画面を表示し、次にtableviewcontrollerに着陸します。

これまでの動作

これは私のviewDidLoadメソッドに追加されました。

myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"splash.jpg"]]; 
myImageView.frame = [[self view] frame]; 

[self.view addSubview:myImageView];  
[self.view bringSubviewToFront:self.myImageView]; 

問題は、スプラッシュ画面またはtabbarController/NavigationController内部UIImageView負荷ということであり、それは、画面の全幅と長さを取ることはありません。これをプログラム的に修正するにはどうすればよいですか?

答えて

4

アプリケーションバンドルでは、Retinaのために "Default.png"と "[email protected]"という名前のスプラッシュスクリーンイメージをコピーする必要があります。アプリはこれを自動的に読み込みます。あなたはもっと仕事をする必要はありません。

は、ここでは、このためのリンクがあります:http://iosdevelopertips.com/cocoa/defaultpng-the-secret-of-the-load-screen.html

+1

を私はコードを一行も書くが、ちょうど 'Default.png'を追加し、必要がないことを意味しますスプラッシュスクリーンが表示されますか? :S – sharon

+0

はい。それはとても簡単です。 –

+0

リンクありがとうございます。しかし、私はまた、アニメーションスプラッシュスクリーンイメージを持つアプリケーションを見てきました。アニメーションはどこから来たのでしょうか?.gifイメージを追加できるとは思いませんか? – sharon

0

を、あなたは起動画像をあなたのターゲット設定で外観を与えられたことがありますか?

+0

はい、画像は表示されますが、tabBarの内側に表示されます。例:最初のタブがスプラッシュ画面になります。実際にはビュー全体がスプラッシュスクリーンである必要があります – sharon

0

おそらく、スプラッシュ画面をアプリケーションデリゲートのdidFinishLaunchingWithOptionsメソッドに追加することをお勧めします。その後、フェードアウト(または必要なアニメーション)のアニメーションを開始します。最後に、アニメーションが完了したらスプラッシュスクリーンビューを削除します。

4

プロジェクトのリソースに使用する画像を追加し、Default.png[email protected](網膜スクリーン用に提供する場合)という名前を付けます。正確に名前を付けないようにしてください。大文字と小文字を間違えた場合、Simulator(大文字と小文字は区別されません)では動作しますが、大文字と小文字が区別されます。

「スプラッシュ画面は」アップルヒューマンインタフェースガイドラインで推奨されていることに注意してください。

enter image description here

+0

私の最初の画面では、データをダウンロードしてテーブルに入力する必要があります。だから私はその上に活動インジケータをimageViewをロードしようとしています。それでは、これはいいですか?アップルのヒューマンインタフェースギルドラインに準拠していますか? – sharon

+0

これは機能しません。デフォルト画面は、ビューが使用可能になるまで表示されます。最初のView Controllerを読み込んで、デフォルトまたはキャッシュされたデータを表示しながら非同期的にリソースをロードする方がよいでしょう。アクティビティインジケータは引き続き表示できます。 – Abizern

+0

Apple Human Interface GuidelinesのURLを上記のところで教えてください。 – sharon

0

あなたがルートのビューにUIImageViewを追加する必要があります。

UIView *rootView = [[[[UIApplication sharedApplication] delegate] viewController] view]; 
    [myImageView setFrame:rootView.bounds]; 
    [rootView addSubview:myImageView]; 
+0

それでは、しばらくしてからどうすれば削除できますか? – sharon

+0

ええ、あなたは 'NSTimer'または' performSelector:withObject:afterDelay: 'を使うことができます – basvk

0

あなたがすることができますuiimageビューを使用して画像の配列を追加してアニメーションを再生するには、 コードを

-(void)viewDidAppear:(BOOL)animated { 
    animationSplashImageView.animationImages = imageArray; 
    animationSplashImageView.animationDuration = 5; 
    animationSplashImageView.animationRepeatCount = 1; 
    [animationSplashImageView startAnimating]; 
} 


IBOutlet UIImageView* animationSplashImageView; 

は、アプリのメインビューで定義されています。また

あなたがAppleのApp StoreにあるツールSplashx無料、使用してスプラッシュをテストすることができます:http://itunes.apple.com/cn/app/splashx-free/id500137095?mt=8

関連する問題