Question

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.

Était-ce utile?

La solution

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

Autres conseils

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

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.

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

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.

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.

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);

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

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.

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)];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top