将子视图添加到Splashscreen

时间:2011-10-04 12:14:52

标签: iphone splash-screen uiactivityindicatorview

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

创建图像时,Splashscreen仍然可见。所以我认为可能可以添加一个活动指标作为Splashscreen的子视图,或者至少在Splashscreen上添加它。

是否有可能实现这一目标?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

您需要将“Splashscreen”添加为窗口的最顶层视图,“自动闪屏”不是视图。系统只会显示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添加一个活动指示器。

然后在applicationDidStart启动方法中放置了需要一些时间的代码:

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

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

答案 1 :(得分:1)

我不认为可以在Splash Screen中添加子视图。

有一种解决方法,您可以在applicationDidFinishLaunching上推送中间视图,并使视图的背景图像与启动画面的背景图像相同。

现在,您可以在此视图中执行创建图像的内容。

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

希望这会对你有所帮助。