クライアントは、スプラッシュ画像をフェードアウトしてからUIを表示したいと考えています。これを行う方法がわかりません。現在のところ、ロードすると表示されます。これを行う簡単な方法はありますか?
4 に答える
UIImageView *splash=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"splash"]];
[UIView animateWithDuration:1
animations:^{
splash.alpha = 0.0;
}
completion:^(BOOL finished)
{
[splash release];
}];
密接に関連する質問で説明したように、スプラッシュスクリーンは使用しないでください。これを、ヒューマンインターフェイスガイドラインに精通していない可能性のあるクライアントに関連付けてください。
そうは言っても、他の方法でクライアントを納得させることができない場合は、他の応答で述べたUIImageViewをフェードアウトすることができます。
私はこのチュートリアルを見ていましたが、それを実装しないことに決めたので、それが機能するかどうかを保証することはできませんが、すべてがチェックされているように見えます
http://www.dobervich.com/2010/10/22/fade-out-default-ipad-app-image-with-proper-orientation/
アプリのスタートアップに多くを追加することは、アプリの拒否の理由になりますが、注意してください。
アバウトウィンドウやスプラッシュ画面の表示は避けてください。一般に、ユーザーがアプリケーションをすぐに使用できないような種類のスタートアップエクスペリエンスを提供することは避けてください。
UIViewController
独自のスプラッシュ画面を実装できます。
@interface SplashScreenViewController : UIViewController {
UIImageView *splashView;
}
@end
//
#import "SplashScreenViewController.h"
@implementation SplashScreenViewController
#pragma mark - View lifecycle
- (void)loadView {
self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[splashView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
[self.view addSubview:splashView];
}
- (void)viewWillAppear:(BOOL)animated {
if (isIPad) {
if (UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]))
splashView.image = [UIImage imageNamed:@"Default-Portrait~ipad.png"];
else
splashView.image = [UIImage imageNamed:@"Default-Landscape~ipad.png"];
}
else
splashView.image = [UIImage imageNamed:@"Default.png"];
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (isIPad) {
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation))
splashView.image = [UIImage imageNamed:@"Default-Portrait~ipad.png"];
else
splashView.image = [UIImage imageNamed:@"Default-Landscape~ipad.png"];
}
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (isIPad ? YES : UIInterfaceOrientationIsPortrait(interfaceOrientation));
}
@end
UIViewController
次に、表示した後、必要なトランジションでこれを非表示にできます。