我在Cocoa、Objective-C和iOS开发方面是新手。
我想实现一个视图,它只是一个闪屏,并且只会持续很短的时间,然后转到主视图。你有任何关于如何实现它的想法吗?有任何教程或代码示例吗?我有一些使用多个视图的示例,但没有像我想要的那样设置定时器在几秒钟后重定向到另一个视图。
我在Cocoa、Objective-C和iOS开发方面是新手。
我想实现一个视图,它只是一个闪屏,并且只会持续很短的时间,然后转到主视图。你有任何关于如何实现它的想法吗?有任何教程或代码示例吗?我有一些使用多个视图的示例,但没有像我想要的那样设置定时器在几秒钟后重定向到另一个视图。
请参考 iOS 应用程序编程指南中的 应用启动 (默认) 图像。
需要注意的是,苹果建议不要将启动图像滥用为闪屏。 请参考苹果 HIG。
你可以在appDelegate
中轻松地实现你的视图叠加在主视图之上。例如,如果你想要一个淡出到主视图的启动图像:(或者一个似乎淡出的默认图像:只需将相同的图像放在启动屏幕和默认屏幕上)。
这样也可以让你获得正确的方向,只要它是主视图的方向。
只需将其添加到你的application:(UIApplication *)application didFinishLaunchingWithOptions:
方法中:
UIImageView*imageView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"your_default_image_or_another.png"]];
[[firstViewController view] addSubview:imageView];
[[firstViewController view] bringSubviewToFront:imageView];
// as usual
[self.window makeKeyAndVisible];
//now fade out splash image
[UIView transitionWithView:self.window duration:1.0f options:UIViewAnimationOptionTransitionNone animations:^(void){imageView.alpha=0.0f;} completion:^(BOOL finished){[imageView removeFromSuperview];}];
正如 @Espresso 发布的链接,我只是想向你解释一下。
如果你在项目中放置了一个名为 Default.png 的图片,则它将用于启动画面。但是,你可以通过在 plist 文件中明确指定不同的图片名称来使用不同的图片。
我知道我正在回答一个快一年前的问题,但它可能会帮助其他人-
我刚刚发现您可以在 XCode4 中做到这一点!这使得这个过程现在变得非常简单。
其他答案都很好,但我想补充一点,在iPhone应用中,你的Default.png应该是320x480,而对于Retina显示屏,你应该添加Default@2x.png 640x960。
要添加启动画面,只需将所有默认图像(如default@2x.png等)替换为具有相同默认名称的启动图像(适用于所有硬件显示类型)。 要增加启动画面的持续时间,在appDelegate方法中进行设置。
didFinishLaunchingWithOptions
如果您想要让主线程等待一段时间,可以使用以下代码:
[NSThread SleepForTimeInterval:(Your time interval)];
您还可以在代码中使用sleep(时间间隔)函数。
didFinishLaunchingWithOptions
sleep(3);
我刚刚自己也不得不解决这个问题,所以想发布一个更新。
我发现在 Info.plist 中设置支持的界面方向后,它才能正常工作。
我还发现 iOSDeveloperTips.com 上的这篇文章非常有用:管理多个启动图像
您只需要添加三个图片来适配 iPhone、iPhone 5 和 iPad,分别命名为 Default.png、Default-568h@2x.png 和 Default@2x.png。现在图片的清晰度取决于您所使用的尺寸,建议使用标准尺寸。
要添加启动画面,首先将该图片添加到您的项目中,然后在 AppDelegate
方法中的 didFinishLaunching
方法中添加以下代码。
[NSThread SleepForTimeInterval:(Time interval)];