我知道这是糟糕的用户体验,但客户要求我每次用户打开应用时都会显示2秒的启动画面。
我试过通过AppDelegate实现这个:
创建初始屏幕视图控制器的实例变量 在应用程序中:didFinishLaunchingWithOptions:方法,和 将其视图的alpha设置为0.
然后在applicationWillEnterForeground中:我将alpha设置为1 希望每次用户打开时都会显示启动画面 app,然后在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];
答案 0 :(得分:0)
这是一种解决方法,但您可以随时尝试:
在根视图控制器上放置UIImageView。 (或使用启动画面图像创建一个新的) 删除真实的启动后,将显示此视图,然后您可以使用您选择的效果将其删除。