Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在iOS中实现闪屏_Objective C_Ios_Splash Screen_Multiple Views - Fatal编程技术网

Objective c 在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的图像,那么它将用于启动屏幕。但是,您

我是可可、Objective-C和iOS开发方面的新手

我想实现一个视图,它只是一个启动屏幕,在路由到主视图之前只持续很短的时间。你知道我该如何实施吗?有教程或代码示例吗?我有一些具有多个视图,但没有一个像我想做的那样,在几秒钟后用计时器重定向到另一个视图

请参见《iOS应用程序编程指南》下的

还应该注意的是,苹果公司建议不要滥用发布图像作为初始屏幕。

作为@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)];