Implementing a splash screen in iOS

假如想象 提交于 2019-12-17 08:31:44

问题


I'm quite a newbie in Cocoa, Objective-C and iOS development.

I'd like to implement a View that is just a splash screen and only last for a short time before routing to the main view. Do you have any idea on how I should implement that ? Any tutorials or code samples ? I have some with multiple views, but none with a timer to redirect to another one after a few seconds like I want to do.


回答1:


See App Launch (Default) Images under the iOS Application Programming Guide.

It should also be noted Apple advised NOT abusing the launch image as a splash screen. Apple HIG




回答2:


You can easily implement your view on top of the main view but in your appDelegate. For example, if you want a splash image that fades out to the main view: (or a default image that seems to fade out: just put the same image on the splash screen and the default screen). This gives you also the right orientation as long as it is the main view's.

Just add it in your application:(UIApplication *)application didFinishLaunchingWithOptions: method:

 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];}];



回答3:


As @Espresso posted link, I just wants to explain it to you.

If you just place an image named Default.png inside your project then it will be used for splash screen. However you can use different image name by explicitly specifying it in plist file.




回答4:


I know I'm giving answer to almost one year old question, but it may help some one else-

I've just discovered that you can do this in XCode4! Which makes this a rather simple process now.

  1. Select your project in the navigation view
  2. under Targets select your application
  3. Select the Summary tab
  4. Scroll down and you'll see a place to add your splash images
  5. Right click on the boxes to Select File



回答5:


The other answers are good but I'd like to add that for iPhone apps your Default.png should be 320x480 and for retina displays you should add Default@2x.png 640x960.




回答6:


In XCode 4, you can click on the Project Name (the parent in the hierarchy on the left).

Then in the Summary tab, under iPhone and iPad you will be able to select the Launch images for each form the file system.




回答7:


To add splash screen just simply replace all the default images (likedefault@2x.png,....) with your splash image with the same default name (for all hardware display type) . To increase the duration of your splash screen , in appDelegate method

didFinishLaunchingWithOptions 

just sleep the main thread for the duration you want as:

[NSThread SleepForTimeInterval:(Your time interval)];

you can also use sleep(time interval) in

didFinishLaunchingWithOptions

sleep(3);



回答8:


Having just had to fix this same problem myself, I thought I'd post an update.

I found that I had to set the Supported Interface Orientations in the Info.plist before it would work correctly.

I also found this article on iOSDeveloperTips.com to be pretty useful: Managing Multiple Launch Images




回答9:


You only have to add three images for iPhone, iPhone 5 and iPad named Default.png, Default-568h@2x.png and Default@2x.png. Now the clarity of the images depends on the size you are taking. You should take the standard sizes.




回答10:


To add splash screen first add that image in your project and then add the following code to your AppDelegate method in the didFinishLaunching method

[NSThread SleepForTimeInterval:(Time interval)];


来源:https://stackoverflow.com/questions/4980610/implementing-a-splash-screen-in-ios

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!