将子视图添加到启动画面

Posted

技术标签:

【中文标题】将子视图添加到启动画面【英文标题】:Add a Subview to Splashscreen 【发布时间】:2011-10-04 12:14:52 【问题描述】:

我目前正在尝试将活动指示器视图添加到我的启动画面。它应该只出现一次 - 在应用程序的第一次启动时。创建了一些应用程序所需的图像,但这需要一些时间。

创建图像时,启动画面仍然可见。所以我认为有可能添加一个活动指示器作为 Splashscreen 的子视图,或者至少以某种方式在 Splashscreen 上添加它。

有没有可能做到这一点?

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

您需要将“Splashscreen”作为最顶层视图添加到您的窗口,“splashcreen”本身不是视图。系统只会显示default.png:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    // Override point for customization after application launch.

    splashScreen = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, -20.0f, 320.0f, 480.0f)];
    splashScreen.backgroundColor = [UIColor blackColor];
    splashScreen.image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Default" ofType:@"png"]];
    [self.window addSubview:splashScreen];

    [self.window makeKeyAndVisible];

    [self performSelector:@selector(applicationDidStart) withObject:nil afterDelay:0.1];

    return YES;

splashScreen 是一个类变量,你可以在 splashView 中添加一个 Activity Indicator。

然后在applicationDidStart do start 方法中放置需要一些时间的代码:

- (void) applicationDidStart 
    // some thing that takes a while

   [splashScreen removeFromSuperView];
   [splashScreen release], splashScreen = nil;

【讨论】:

我认为他说“SplashScreen”时指的是启动图像。虽然你可能是对的,而我的看法可能是错误的。 这是在“SplashScreen”中添加引号的方式;) 谢谢,它现在工作正常 :) 是的,我的意思是启动图像。在 WP7 中它被称为 Splashscreen ;)【参考方案2】:

我认为不可能将子视图添加到启动画面。

有一种解决方法,您可以在 applicationDidFinishLaunching 上推送一个中间视图,并使该视图的背景图像与初始屏幕的背景图像相同。

现在您可以在此视图上执行创建图像的操作了。

创建图像后,在 applicationDelegate 中调用一个方法,该方法将弹出中间视图并添加您的常规视图。

希望对你有所帮助。

【讨论】:

以上是关于将子视图添加到启动画面的主要内容,如果未能解决你的问题,请参考以下文章

Qt Quick Controls 2 启动画面

如何将 UIActivityIndi​​cator 添加到我的应用程序的启动画面?

添加启动画面后Android应用程序强制关闭

如何创建第二个启动画面(在 ios 中的默认启动画面之后)?

MainActivity 应在启动画面期间加载

设置内容视图();在我的启动画面活动中出错