1

したがって、Default.png を iPhone アプリのスプラッシュ スクリーンに使用できることはわかっていますが、アプリケーションの読み込みが完了するとアニメーションが表示されないため、プロらしくないように見えます。

そのため、フェードアウトして最後の前のビューに移動するスプラッシュ スクリーンを追加しようとしています。

インターネット上のほとんどの例は、addSubview を使用した古い方法に基づいている傾向があります。これをストーリーボード アプリケーションに追加するにはどうすればよいでしょうか。

現在のコード (元々動作していたかどうか確信が持てなかったため、タイミングが間違っています)

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    splashView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default2.png"]];
    splashView.frame = CGRectMake(0, 0, 324, 480);
    [_window addSubview:splashView];
    [_window bringSubviewToFront:splashView];
    [_window makeKeyAndVisible];

    [self performSelector:@selector(removeSplash) withObject:nil afterDelay:1500.2];
    return YES;
}

-(void)removeSplash;
{
    [UIView animateWithDuration:1.0 animations:^{self.splashView.alpha = 0.0;} completion:^(BOOL finished){ [splashView removeFromSuperview]; }];
    [splashScreen release];
}
4

2 に答える 2

1

あなたの場合、私はそれをサブビューとして追加しますが、常にウィンドウのトップサブビューとして保持します。それがそれであるとき、alpha == 0それはタッチを受け取るのをやめます。だから..フェードアウトするたびにリリースする理由はありません。

私の場合、クライアントはアプリケーションが最大化または開かれるたびにスプラッシュ画面を見たいと思っていたので、これも行いました:

- (void)applicationDidEnterBackground:(UIApplication *)application 
{
    extraSplashScreen.alpha = 1;  //when it goes in background - set splash screen visible.
}

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    [self fadeOutSplash]; //initiate fade out.
}

私のfadeOutSplash関数は次のようになります(念のため):

- (void)fadeOutSplash
{
    [UIView beginAnimations:nil context:NULL];  

    [UIView setAnimationDelegate:self];

    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];   

    [UIView setAnimationDuration:0.3];

    [UIView setAnimationDelay:0.5];

    extraSplashScreen.alpha = 0;

    [UIView commitAnimations];
}

お役に立てば幸いです。

于 2012-06-10T07:34:40.887 に答える