Iphone 向我的项目添加启动屏幕

Iphone 向我的项目添加启动屏幕,iphone,objective-c,Iphone,Objective C,我创建了一个项目,它由一个tabbarcontroller和一个navigationcontroller组成 第一个视图或第一个选项卡是tableview控制器。现在我需要在我的应用程序中添加一个splashscreen,这样当应用程序加载时,它将显示一个欢迎屏幕,然后降落到tableviewcontroller上 到目前为止我的工作 这是在我的viewDidLoad方法中添加的 myImageView = [[UIImageView alloc] initWithImage:[UIImage

我创建了一个项目,它由一个
tabbarcontroller
和一个
navigationcontroller
组成

第一个视图或第一个选项卡是tableview控制器。现在我需要在我的应用程序中添加一个splashscreen,这样当应用程序加载时,它将显示一个欢迎屏幕,然后降落到tableviewcontroller上

到目前为止我的工作

这是在我的
viewDidLoad
方法中添加的

myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"splash.jpg"]];
myImageView.frame = [[self view] frame];

[self.view addSubview:myImageView];    
[self.view bringSubviewToFront:self.myImageView];

问题在于,启动屏幕或
UIImageView
加载在tabbarController/NavigationController内部,并且不占用屏幕的全部宽度和长度。如何通过编程解决此问题?

在应用程序包中,您需要复制名为“Default.png”和Default@2x.png“视网膜。应用程序将自动加载,您无需再做更多工作


这里有一个链接:

您是否在目标设置中查看了启动图像?

您可能希望在应用程序代理的didFinishLaunchingWithOptions方法中添加启动屏幕。然后开始淡出动画(或任何需要的动画)。动画完成后,最后删除初始屏幕视图。

将要使用的图像添加到项目的资源中,并将其命名为
Default.png
Default@2x.png
(如果您为视网膜屏幕提供)。确保没有确切的名字。如果大写错误,它将在模拟器中工作(不区分大小写),但在设备上不工作(区分大小写)

请注意,Apple人机界面指南不鼓励使用“闪屏”:


您必须将
UIImageView
添加到根的视图中:

UIView*rootView=[[[UIApplication sharedApplication]委托]视图控制器]视图];
[myImageView setFrame:rootView.bounds];
[rootView addSubview:myImageView];

您可以使用uiimage视图添加图像数组以播放动画,请尝试以下操作 编码

已在应用程序的主视图中定义


您还可以使用Apple App Store上的Splashx Free工具测试您的飞溅:

是的,图像显示在选项卡栏中。示例:第一个选项卡成为启动屏幕图像。实际上,整个视图应该是splashscreen您的意思是我不需要编写一行代码,只需添加
Default.png
,splashscreen就会出现:谢谢你的链接。但我也看到过带有动画闪屏图像的应用程序。我不认为可以添加.gif图像,那么动画是从哪里来的呢?我认为我的解决方案不可能做到这一点。关于您想要什么,这里有一个类似的问题:我的第一个屏幕需要下载数据并填充表。因此,在出现这种情况之前,我正在尝试加载一个带有活动指示器的imageView。这样行吗?这符合苹果公司的人机界面准则吗?这是行不通的。默认屏幕仅在视图可用之前显示。最好加载初始视图控制器,并在显示一些默认或缓存数据时异步加载资源。你仍然可以显示一个活动指示器。请分享上面提到的苹果人机界面指南的URL。在“启动映像”部分下。好的,那么过一会儿我如何删除它?是的,您可以使用
NSTimer
performSelector:withObject:afterDelay:
    -(void)viewDidAppear:(BOOL)animated {
    animationSplashImageView.animationImages = imageArray;
    animationSplashImageView.animationDuration = 5;
    animationSplashImageView.animationRepeatCount = 1;
    [animationSplashImageView startAnimating];
} 


IBOutlet UIImageView* animationSplashImageView;