每次应用变为活动状态时显示启动画面

Nit*_*ish 15 iphone splash-screen ios

我希望每次应用变为活动时都会显示启动画面.我创建了一个showSplash我调用的函数applicationDidBecomeActive:

-(void)showSplash
{
    UIImageView *splashScreen = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"Default.png"]];
    [self.window.rootViewController.view addSubview: splashScreen];
    [self.window makeKeyAndVisible];
    NSLog(@"begin splash");
    [UIView animateWithDuration: 4.2
                          delay: 0.5
                        options: UIViewAnimationOptionCurveEaseOut
                     animations: ^{  
                         splashScreen.alpha = 0.0;
                     }
                     completion: ^ (BOOL finished) {
                         [splashScreen removeFromSuperview];
                         NSLog(@"end splash");
                     }
     ];
}  
Run Code Online (Sandbox Code Playgroud)

这就是我调用这个函数的方式:

- (void)applicationDidBecomeActive:(UIApplication *)application {
[self showSplash];
}
Run Code Online (Sandbox Code Playgroud)

但是没有闪屏.请指正.

Ruf*_*fel 7

如果您希望应用程序每次返回时都有一个新的开始,您还可以禁用后台执行,如Apple文档中所述(上一节标题为"选择退出后台执行"):

如果您不希望应用程序在后台运行,则可以通过将UIApplicationExitsOnSuspend键(值为YES)添加到应用程序的 Info.plist文件中来明确选择退出后台 .

  • 这是一个好点.谢谢.但我只希望每次都能出现闪光.应用程序的其余部分就像它留在后台时一样. (2认同)

Dai*_*jan 5

添加飞溅视图后 - 把它放在前面

改变

UIImageView *splashScreen = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"Default.png"]];
[self.window.rootViewController.view addSubview: splashScreen];
[self.window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)

UIImageView *splashScreen = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"Default.png"]];
[self.window addSubview: splashScreen];
[self.window bringSubviewToFront: splashScreen]; //!
[self.window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)