iDia
iDia

Reputation: 1397

Unable to detect iPhone Retina 4-inch screen size in simulator

I want to make my iOS application support iPhone 5. So I created a separate xib set for iPhone 5 size. Then I load each xib by checking the screen height.

This is the splash screen loading code inside the AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:    (NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    UIViewController *viewController1;
    if ([UIScreen mainScreen].bounds.size.height==480) {
        viewController1 = [[SplashScreen alloc] initWithNibName:@"SplashScreen" bundle:nil];
    }


    if ([UIScreen mainScreen].bounds.size.height==568) {
        viewController1 = [[SplashScreen alloc] initWithNibName:@"SplashScreen5" bundle:nil];
    }

    self.window.rootViewController = viewController1;
    [self.window makeKeyAndVisible];
    return YES;
}

But when I change the simulator into Retina 4-inch, my code doesn't get the emulator size. It always executes the 480 if condition.

But other apps I created like this are working properly.
What is the reason for this?

Upvotes: 1

Views: 1250

Answers (1)

neywen
neywen

Reputation: 121

I'm having the exact same problem right now (at the worst moment, of course....). It did work properly for several weeks, and for a unknown reason, the simulator suddenly considers the 4in simulated device as a 3.5in screen. cleaning, reset, reboot : same situation...

EDIT : ok, problem solved. T'was because of a missing Default image in the -568@2x format. I knew that was a condition to make the system work, but xcode had apparently decided to get rid off the one I chose. oh well...

Upvotes: 4

Related Questions