0

我希望我的启动画面在启动后一秒钟后消失。

所以在 .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

最简单的方法是设置一个布尔值标志并将其传递给视图控制器,然后检查它是否已启动。并且仅在值为 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

您需要viewDidLoad在您的方法中执行此操作rootViewController

于 2013-08-07T13:53:45.343 回答
0

您可以像这样在 appDelegate 中添加睡眠

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