我的应用程序中有一个启动画面。但是启动画面仅在应用程序从 xcode 运行时出现,并且在直接从模拟器启动时不出现。
请帮我。
谢谢。
没有更多信息很难给出建议,但这听起来像你的应用程序在从 XCode 运行时需要更长的时间来加载,因为调试器将在启动等时附加,而从模拟器本身启动会更快启动 - 也许启动画面是在屏幕上停留的时间不足以让您看到它吗?
如果您在标准启动屏幕“defaultXXX.png”上实现了一个额外的启动屏幕,您能否详细说明您是如何编码的?
您使用的是哪个 SDK?如果您使用 4,则可能您的问题与多任务处理有关。在带有 iOS4 的模拟器中,当您启动您的应用程序时,如果应用程序之前打开过,您实际上会恢复您的应用程序而不是 lauch。当您从 XCode 启动应用程序时,它会将您的应用程序“复制”到模拟器并启动“新实例”。
在应用程序 delegate.h 类中
UIImageView *myImgView;
//---------methods to show and hide splash----------
-(void)ShowSplash;
-(void)hideSplash;
在应用程序委托 .m 类中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
[self ShowSplash];
[self.window makeKeyAndVisible];
return YES;
}
-(void)ShowSplash
{
myImgView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
myImgView.backgroundColor=[UIColor colorWithRed:0 green:.3 blue:0.5 alpha:1];
myImgView.image=[UIImage imageNamed:@"splashscreen.png"];
[self.window addSubview:myImgView];
[self performSelector:@selector(hideSplash) withObject:nil afterDelay:1];
}
-(void)hideSplash
{
[UIView beginAnimations:@"flipping view" context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:myImgView.superview cache:YES];
[myImgView removeFromSuperview];
[UIView commitAnimations];
[myImgView release];
myImgView=nil;
self.window.rootViewController = self.viewController;
}