Objective c 在iOS中实现闪屏
我是可可、Objective-C和iOS开发方面的新手 我想实现一个视图,它只是一个启动屏幕,在路由到主视图之前只持续很短的时间。你知道我该如何实施吗?有教程或代码示例吗?我有一些具有多个视图,但没有一个像我想做的那样,在几秒钟后用计时器重定向到另一个视图 请参见《iOS应用程序编程指南》下的 还应该注意的是,苹果公司建议不要滥用发布图像作为初始屏幕。Objective c 在iOS中实现闪屏,objective-c,ios,splash-screen,multiple-views,Objective C,Ios,Splash Screen,Multiple Views,我是可可、Objective-C和iOS开发方面的新手 我想实现一个视图,它只是一个启动屏幕,在路由到主视图之前只持续很短的时间。你知道我该如何实施吗?有教程或代码示例吗?我有一些具有多个视图,但没有一个像我想做的那样,在几秒钟后用计时器重定向到另一个视图 请参见《iOS应用程序编程指南》下的 还应该注意的是,苹果公司建议不要滥用发布图像作为初始屏幕。 作为@Espresso发布的链接,我只想向您解释一下 如果您只是在项目中放置一个名为Default.png的图像,那么它将用于启动屏幕。但是,您
作为@Espresso发布的链接,我只想向您解释一下
如果您只是在项目中放置一个名为Default.png的图像,那么它将用于启动屏幕。但是,您可以通过在plist文件中显式指定不同的图像名称来使用它。我自己刚刚解决了同样的问题,我想我应该发布一个更新 我发现我必须在Info.plist中设置支持的接口方向,它才能正常工作
我还发现iOSDeveloperTips.com上的这篇文章非常有用:其他答案很好,但我想补充一点,对于iPhone应用程序,您的Default.png应该是320x480,对于视网膜显示,您应该添加Default@2x.png640x960。在XCode 4中,您可以单击项目名称(左侧层次结构中的父级)
然后在“摘要”选项卡中,在iPhone和iPad下,您将能够为文件系统的每个表单选择启动图像。您可以轻松地在主视图顶部实现视图,但在
appDelegate
中实现视图。例如,如果您想要淡入主视图的启动图像:(或者是一个看起来淡出的默认图像:只需将相同的图像放在启动屏幕和默认屏幕上即可)。
这也为您提供了正确的方向,只要它是主视图的
只需将其添加到您的应用程序中:(UIApplication*)应用程序完成启动时使用选项:
方法:
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];}];
我知道我在回答一年前的问题,但这可能会帮助其他人- 我刚刚发现,您可以在XCode4!中实现这一点,这使得这一过程现在变得相当简单
您只需为iPhone、iPhone 5和iPad添加三个名为Default.png、Default的图像-568h@2x.png及Default@2x.png.现在图像的清晰度取决于您拍摄的大小。您应该选择标准尺寸。要添加闪屏,只需替换所有默认图像即可(likedefault@2x.png,....)具有相同默认名称的启动图像(适用于所有硬件显示类型)。 要增加初始屏幕的持续时间,请使用appDelegate方法
didFinishLaunchingWithOptions
只需在您想要的持续时间内休眠主线程,如下所示:
[NSThread SleepForTimeInterval:(Your time interval)];
您还可以在中使用睡眠(时间间隔)
要添加启动屏幕,首先在项目中添加该图像,然后在
didfishLaunching
方法中将以下代码添加到AppDelegate
方法中
[NSThread SleepForTimeInterval:(Time interval)];
但大多数著名的应用程序都是这样的,不是吗?@LordFlash仅仅因为大部分人做某件事并不一定会让它成为“正确”的做事方式:)据说苹果在技术上是唯一一家不需要强制执行品牌标识的iOS应用程序制造商,但事实上:)这确实是一个很好的方式!它甚至为视网膜显示图像进行命名/重命名。当我使用NightCoder上面提到的代码时,我在iPhone模拟器上获得了所需的淡出启动屏幕,但图片似乎用因子2进行了缩放:我只得到了初始图片的左上角四分之一(=启动图像),缩放到全屏。启动时,在启动屏幕启动之前,启动图像以正确的大小显示。此外,闪屏似乎没有出现在设备上,只是出现在模拟器上:在iPhone上运行时,它只显示启动图像。这两个问题的原因和解决方案是什么?我的问题已经解决了:文件扩展名是大写的,我必须声明一个框架和内容模式。我知道苹果和大多数用户无法忍受这些延迟的默认图像,但有时这不取决于我们的开发者来决定!不管怎样,ups为您提供了这个问题的第一个非常清晰的答案。Noob问题,我从哪里获得“firstViewController”呢?睡眠对您有害!几乎否决了这个答案,决定我对它感觉不够严厉是的,这要容易得多。谢谢不过在Xcode 5中有点不同
[NSThread SleepForTimeInterval:(Time interval)];