アニメーションが短ければオプション1、それほど複雑ではありません。アニメーションが長い場合はオプション2、それ以外の場合はメモリが多すぎます。
オプション1は非常に簡単です:
イムは、あなたがストーリーボードを使用していると仮定します。したがって、新しいView Controller(LogoAnimationViewControllerなど)を作成し、ストーリーボードの初期View Controllerとして設定します。 viewDidLoadでは、これを行います:
UIImage *animationImage = [UIImage animatedImageNamed:@"logo-animation" duration:1];
UIImageView *animationImageView = [[UIImageView alloc] initWithImage:animationImage];
animationImageView.contentMode = UIViewContentModeScaleAspectFit;
animationImageView.center = CGPointMake(CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds));
[self.view addSubview:animationImageView];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
UIViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"]; // put whatever view controller you wanna show after the animation here
[self presentViewController:viewController animated:YES completion:nil];
});
起動画像から初期表示コントローラへの移行は、デフォルトでスムーズにクロスフェードされます。