0

起動後 1 秒後にスプラッシュ画像をフェードさせたい。

したがって、.xib の上に、スプラッシュ画像を含む画像ビューを配置します (

最初に実際のスプラッシュ スクリーンが表示され、次に xib が読み込まれると、同じ画像のイメージ ビューが表示され、同じスプラッシュ スクリーンのように見えます。

)

ViewController.m でこのコードを使用して、画像をフェードします

[UIImageView beginAnimations:nil context:NULL];
[UIImageView setAnimationDuration:1.0];
[ImageLoading setAlpha:0];
[UIImageView commitAnimations];

これは機能しますが、ユーザーが別の xib に移動して後で元に戻すと、1 秒のスプラッシュ スクリーンが再び表示されます。

Viewcontroller.mでこれを試しました

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[UIImageView beginAnimations:nil context:NULL];
[UIImageView setAnimationDuration:1.0];
[ImageLoading setAlpha:0];
[UIImageView commitAnimations];

return YES;

}

しかし、どうやらそれは呼び出されていません。

この画像ビューを起動時にフェードさせる他の方法はありますか?

どうもありがとう、

4

4 に答える 4

2

これを行う最も簡単な方法は、フラグに bool 値を設定し、それを View Controller に渡し、それが起動されているかどうかを確認することです。値が false の場合にのみスプラッシュ スクリーンを表示します。何かのようなもの

     if (!notShowSplashScreen) { 
...Your code ...
 notShowSplashScreen = TRUE
}

(デフォルトの bool 値は true に設定されているため、画面を表示するたびに渡す必要はありません)

于 2013-08-07T13:54:20.027 に答える
1

アプリのデリゲートでプロパティを設定します。例えば@property(nonatomic,assign) BOOL isFirstTime;

appdelegate の -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionメソッドで、に設定しNOます。

次に、viewController でこの値を確認します。YES の場合はアニメーションを表示し、NO に設定します。NO の場合は、何もしません。

于 2013-08-07T13:54:47.907 に答える
0

このようにappDelegateにスリープを追加できます

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    [NSThread sleepForTimeInterval:1];
}
于 2013-08-07T13:55:19.980 に答える
0

viewDidLoadあなたはあなたのメソッドでこれを行う必要がありますrootViewController

于 2013-08-07T13:53:45.343 に答える