动态生成 iPhone/iPad 应用程序启动图像的好方法

Posted

技术标签:

【中文标题】动态生成 iPhone/iPad 应用程序启动图像的好方法【英文标题】:Good ways to dynamically generate the start image of an iPhone/iPad app 【发布时间】:2010-04-21 16:19:06 【问题描述】:

我正在自学 iPhone 开发,我发现 iPhone/iPad 应用程序的一个方面是运行应用程序时显示的启动图像。我希望我的启动图像在应用程序启动时显示有关用户的一些基本信息,但该信息必须在应用程序首次运行时首先由用户收集。这告诉我,我需要在用户输入他们的信息后动态生成开始图像,或者我需要在我的静态开始图像顶部放置某种标签才能完成此操作。应用程序第一次启动时,在用户输入他们的信息之前,启动图像可以是任何东西,也可以什么都不是,我不关心这个。

所以,我的问题是……

    您能否在应用启动时将控件(例如标签)放置在启动图像的顶部? 如果不是,在应用首次启动并收集用户信息后动态生成启动图像的好方法是什么? 如果无法更改此启动图像(感谢 kristopher!),我是否可以在启动图像关闭后将动态生成的图像显示一段时间(约 3 秒)?我什至必须使用起始图像吗?

非常感谢您的帮助!我现在要开始研究这个问题。

【问题讨论】:

【参考方案1】:

要回答第 3 个问题,是的,您需要一个起始图像。它应该看起来像您的动态开始图像,但没有动态信息。

要在启动后短暂显示动态信息,只需在首先出现的任何视图控制器之上使用模态视图控制器(下面称为viewController):

SplashScreenController *splashScreen = [[SplashScreenController alloc] initWithNibName:@"SplashScreenController" bundle:nil];
[viewController presentModalViewController splashScreenController animated:NO];
[splashScreenController release];

[viewController performSelector:@selector(dismissModalViewControllerAnimated:) withObject:YES afterDelay:3];

显然您需要创建一个 UIViewController 子类和名为 SplashScreenController 的 xib 文件。

【讨论】:

【参考方案2】:

应用无法更改其起始图像。这些图像文件以及应用程序包中的其他文件被操作系统视为只读。

如果您没有启动图像,那么用户只会看到黑屏一两秒(或更长时间,具体取决于您的应用程序的大小)。有一个启动图像是个好主意。

您可以在应用开始运行后显示任何您想要的内容。

【讨论】:

谢谢,克里斯托弗!我不是一个容易放弃并且很难相信在编程方面没有办法完成某事的人。我修改了我的问题并在我的列表中发布了第三个问题,你的想法是什么?再次感谢!【参考方案3】:

除了不显示用户信息外,我执行的操作与您尝试完成的操作类似。如果你想看看我做了什么,请查看我的应用程序How Long Can You Tap It(免费)。正如克里斯托弗所提到的,第一个图像是不可更改的。只要应用程序需要加载,它就会一直显示。然后,图像将消失并显示您的初始视图控制器,这将是您想要的任何内容。在我的应用程序中,它只是与初始图像相同的图像,但不是说LOADING,而是显示文本告诉您点击屏幕开始播放。如果您不想依靠用户点击屏幕继续,您可以按照 Frank 所说的操作并在 X 秒内将其关闭。如果您想要的代码比 Frank 提供的更多,请告诉我们。

【讨论】:

以上是关于动态生成 iPhone/iPad 应用程序启动图像的好方法的主要内容,如果未能解决你的问题,请参考以下文章

具有固定背景图像的 ipad/iphone 应用程序

在视图控制器中动态加载 iPhone/iPad 的 nib

UIScreen applicationFrame 在横向应用程序启动时返回不正确的矩形 (iPhone/iPad)

在 iPhone / iPad 上,如何在不使用图像的情况下制作带有凹槽的 Button?

iPhone / iPad 通用应用程序方向

Boost.Thread 线程在发布版本中未在 iPhone/iPad 上启动