iPhoneスプラッシュ画面
-
20-09-2019 - |
質問
私は本当にベストを尽くそうとしていますが、コードで何が問題になっているのか本当にわかりません。私はたくさんの検索をしましたが、私はいくつかの客観的なcの基本を理解できないと思います;)
私の最初の質問は、以下のコードに関連しています。
[window addSubview:tabBarController.view];
UIImage *image = [UIImage imageNamed:@"lol.png"];
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image];
これを行うのは違いを生みますか:
[window addSubview:defaultImage];
またはこれ:
[tabBarController.view addSubview:defaultImage];
私の2番目の質問は、スプラッシュ画面を作成することです。私は自分でそれをしようとしましたが、何が機能していないかがわかりません(私たちはAppDelegateにいます):
[window addSubview:tabBarController.view];
UIImage *image = [UIImage imageNamed:@"lol.png"];
UIImageView *defaultImage = [[UIImageView alloc] initWithImage:image];
[window addSubview:defaultImage];
[window makeKeyAndVisible]; //makes the window visible right ?
UIImage *image2 = [UIImage imageNamed:@"lol2.png"];
UIImageView *pubImage = [[UIImageView alloc] initWithImage:image2];
[UIView setAnimationDelegate:self];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window cache:YES]; //not sure about the forView:window ...
[defaultImage removeFromSuperview];
[window addSubview:pubImage];
[UIView commitAnimations];
うーん、私は「makekeyandvisible」ウィンドウと呼ばれるので、ユーザーにアニメーションを表示する必要があると思います...
まあ、私はそれが機能しないのでステップを逃しています:d。
歓迎を手伝ってください、
Gauthier。
解決
「default.png」という名前のプロジェクトに画像を追加すると、スプラッシュ画面として機能します。
ユーザーに必要以上に画面を表示するように強制することは、通常、悪いと見なされます。
とにかくAddSubViewを使用して追加したい場合:正常に動作するはずです。アニメーションが必要な場合は、UIViewアニメーションの代わりにCatRansitionsを調べたい場合があります。
スプラッシュ画面をウィンドウまたはメインビューコントローラーに追加すると、ユーザーに同じように表示されるはずです。
編集:このスニペットを試してみてください - する必要があります #include <QuartzCore/QuartzCore.h>
Quartzcoreフレームワークを追加します
// Using a CATransition
CATransition* transition = [CATransition animation];
transition.delegate = self; // if you set this, implement the method below
transition.duration = 0.3;
transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromRight;
[self.view.layer addAnimation: transition forKey: nil];
[self.view addSubview: theNewView];
移行が終了したときに何かをする必要がある場合はこれを追加します。
#pragma mark -
#pragma mark CAAnimation Delegate Methods
- (void)animationDidStop: (CAAnimation*)theAnimation finished: (BOOL)flag
{
// Whatever you need to do when the animation is done.
}
他のヒント
他の答えの最初の声明には同意しません。「「default.png」という名前のプロジェクトに画像を追加すると、スプラッシュ画面として機能します」と表示されます。
default.pngは起動画像です。 Apple Hig 具体的には、起動画像とスプラッシュ画面を区別します。
特に、それは言います
起動画像を提供する機会として使用しないでください。
- スプラッシュ画面などの「アプリケーションエントリエクスペリエンス」
- 窓について
- ブランディング要素は、アプリケーションの最初の画面の静的な部分でない限り
したがって、スプラッシュ画面の場合は、使用してください NSTimer
または、ユーザーがスプラッシュ画面を却下するボタン。