【发布时间】:2014-11-28 14:38:44
【问题描述】:
我知道这是糟糕的用户体验,但是客户要求我在每次用户打开应用程序时显示 2 秒的初始屏幕。
我已经尝试通过 AppDelegate 实现这一点:
创建启动画面视图控制器的实例变量 在应用程序中: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];
来自应用程序WillEnterForeground:
[[_loadingViewController view] setAlpha:1.0f];
[self performSelector:@selector(removeLoadingView) withObject:nil afterDelay:2.0];
【问题讨论】:
-
你有默认的启动图像,这对你的客户来说还不够吗?
-
您的应用在进入后台并返回活动状态后是否应该返回到之前的状态?
-
相信我,我已经尝试过了,但是他们坚持希望用户每次打开应用时都能看到启动画面。
-
老实说,您可以向他们展示有关启动画面的 Apple 人机界面指南,然后向他们展示 Apple 审查规则,其中规定应用程序必须遵守这些指南,否则它们将被拒绝,因为这是完全正确的。你有理由让客户改变主意,如果他们想要在实际的应用商店中获得它,他们将无法拥有它,很简单。我与客户有很多分歧,但一旦你向他们展示 Apple 指南,他们就会放弃它,因为他们希望 a 出现在商店中。
-
请显示一些代码。
标签: ios iphone splash-screen