Alex
Alex

Reputation: 11137

ipad splash screen doesn't rotate

I would like to be able to rotate my splash screen on my ipad to landscape right and left. i have enabled landscape right and left orientation in my .plist file. i've added 4 files for the LandscapeRight and LandscapeLeft:

Default-LandscapeRight@2x~ipad.png
Default-LandscapeLeft@2x~ipad.png
Default-LandscapeRight~ipad.png 
Default-LandscapeLeft~ipad.png

although this shouldn't matter, in my rootviewcontroller i've got:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
    return ( UIInterfaceOrientationIsLandscape( interfaceOrientation ) );
}

The splash screen loads, but it doesn't rotate. what am i doing wrong?

Upvotes: 1

Views: 666

Answers (1)

Mohammad Kamar Shad
Mohammad Kamar Shad

Reputation: 6067

As I Know Device does not recognise the Orientation in the duration of Splash Image.These SPlash images Default-LandscapeRight@2x~ipad.png Default-LandscapeLeft@2x~ipad.png Default-LandscapeRight~ipad.png recognise when app going to launch device then device takes Appropriate Splash Image. Default-LandscapeLeft~ipad.png.

You can do the Alternate solution if you interested.and this is just my concept nothing more

1 create the UIIMageView for this Purpose and Add it as SUbview to Window.

2 Set iamge to that UIIMageView.

3 Set Sleep method for 3-4 seconds. like sleep(4).

4 As call goes to RootViewController manage the Orientation of Image.

like below method this is the Method suppose you have defind In The AppDelegate class will manage the Image Orientation.

 -(void)checkOrientationforSplash:(UIInterfaceOrientation)interfaceOrentaion
    {
if (splashImageView.hidden==FALSE) {
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
    if (interfaceOrentaion==UIInterfaceOrientationPortrait|| interfaceOrentaion==UIInterfaceOrientationPortraitUpsideDown) {
        UIImage *image=[UIImage imageNamed:@"Default-Portrait.png"];
        splashImageView.frame=CGRectMake(0.0, 0.0, image.size.width, image.size.height);
        [splashImageView setImage:image];

    }
    else {
        UIImage *image=[UIImage imageNamed:@"Default-Landscape.png"];
        splashImageView.frame=CGRectMake(0.0, 20.0, image.size.width, image.size.height);
        [splashImageView setImage:image];
    }
       }

}

5 You can Manage That Image Form in the Mid of App Instaltion, RoortViewController.

6 Remove That Splash Image At Specific Point.

 -(void)removeSplash
   {
     [splashImageView setHidden:YES];
   }

I hope it'll help you.

Upvotes: 1

Related Questions