ios淡出闪屏(iphone 5友好)

Jac*_*nkr 6 splash-screen ios

我想要欺骗主要闪屏的感觉,无论何时applicationDidBecomeActive被调用都会逐渐消失,但它无法正常工作.我究竟做错了什么?

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    if(IS_IPHONE_5)
        splash = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default-568h.png"]];
    else
        splash = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]];

    [self.window.rootViewController.view addSubview:splash];

    [UIView animateWithDuration:0.5 
                     animations:^{
                         splash.alpha = 0;
                     }
                     completion:^(BOOL finished) {
                         [splash removeFromSuperview];
                     }];
}
Run Code Online (Sandbox Code Playgroud)

然后你需要在某处定义以下内容.我使用该项目.pch但您可以根据需要使用标题.

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
Run Code Online (Sandbox Code Playgroud)

Aar*_*ark 6

我发现,从ios6开始,你可以做到这一点

-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [UIView animateWithDuration:0.2
                          delay:0
                        options: UIViewAnimationCurveEaseIn
                     animations:^{
                        self.window.viewForBaselineLayout.alpha = 0; // and at this alpha
                     }
                     completion:^(BOOL finished){
                     }];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

然后立即开始

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

    [UIView animateWithDuration:0.5
                          delay:0
                          options: UIViewAnimationCurveEaseOut
                      animations:^{
                         self.window.viewForBaselineLayout.alpha = 1; // and at this alpha
                     }
                     completion:^(BOOL finished){
                     }];
Run Code Online (Sandbox Code Playgroud)

它从加载屏幕到现在加载的应用程序屏幕提供交叉淡入淡出效果.


Dav*_*ham 3

如果这确实是您的代码,则您的图像名称可能有拼写错误。(如果没有,请让我们知道“不工作”是什么意思。)

此外,启动画面通常不会每次都会出现applicationDidBecomeActive:didFinishLaunchingWithOptions:是您知道自己已启动且启动画面已代表您显示的时间。