我目前正在尝试将活动指示器视图添加到我的Splashscreen。它应该只出现一次 - 在应用程序的第一次启动时。创建了一些应用程序所需的图像,但这需要一些时间。
创建图像时,Splashscreen仍然可见。所以我认为可能可以添加一个活动指标作为Splashscreen的子视图,或者至少在Splashscreen上添加它。
是否有可能实现这一目标?
提前感谢您的帮助。
答案 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中调用一个方法,该方法将弹出中间视图并添加常规视图。
希望这会对你有所帮助。