繁体   English   中英

iOS-每次打开应用程序时显示启动画面

[英]iOS - Show splash screen every time app opens

我知道这是糟糕的UX,但是客户端要求用户每次打开应用程序时都显示启动屏幕2秒钟。

我尝试通过以下方式通过AppDelegate实现此目的:

  • 在application:didFinishLaunchingWithOptions:方法中创建初始屏幕视图控制器的实例变量,并将其视图的alpha设置为0。

  • 然后在applicationWillEnterForeground中:我希望将alpha设置为1,希望用户每次打开应用时都会显示启动屏幕,然后在2秒后将alpha设置回0。

现在,这确实可以,但是不能正常工作。 当应用打开时,会短暂显示主UI,然后显示启动屏幕。

当然,这不是预期的,因为初始屏幕应显示在主UI之前。

我试图说服客户放弃这一点,但是有人知道如何正确实施它(以防万一他们坚决要求这样做)?

从应用程序:didFinishLaunchingWithOptions:

_tabBarController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"TabBarController"];
[[self window] setRootViewController:_tabBarController];
[_tabBarController setDelegate:self];


_loadingViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"LoadingView"];
[[_loadingViewController view] setAlpha:0.0f];
[_loadingViewController willMoveToParentViewController:_tabBarController];
[_tabBarController addChildViewController:_loadingViewController];
[_loadingViewController didMoveToParentViewController:_tabBarController];
[[_tabBarController view] addSubview:_loadingViewController.view];

从applicationWillEnterForeground:

[[_loadingViewController view] setAlpha:1.0f];

[self performSelector:@selector(removeLoadingView) withObject:nil afterDelay:2.0];

这是一种解决方法,但是您可以随时尝试:

将UIImageView放在根视图控制器上。 (或使用启动屏幕图像创建一个新的)真正的启动被删除后,将显示此视图,然后您可以根据自己的选择将其删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM