How do I manage background images for the iPhone 5?

Luke Irvin picture Luke Irvin · Sep 18, 2012 · Viewed 8.4k times · Source

Some of my apps use custom images as the background. What is the proper way to check the screen size to place the proper image?

Should it be something like this in viewDidLoad:

if ([UIScreen mainScreen] == 2.0)
{
     UIImage * backgroundImage = [UIImage imageNamed:@"[email protected]"];
     backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage]];
}
else
{
    UIImage * backgroundImage = [UIImage imageNamed:@"bgimage.png"];
    backgroundImageView = [[UIImageView alloc] iniWithImage:backgroundImage]];
}

Any tips/advice is much appreciated!

Thanks!

Answer

Bryan picture Bryan · Sep 18, 2012

The following code checks the size / bounds of the screen. If the screen is 586 points (remember, that the screen is measured in points because of Retina) than we know that it is the new 4-inch Retina Display.

if ([[UIScreen mainScreen] bounds].size.height == 568)
{
   UIImage * backgroundImage = [UIImage imageNamed:@"[email protected]"];
   backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];
}
else
{
   UIImage * backgroundImage = [UIImage imageNamed:@"bgimage.png"];
   backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];
}

See also iOS 6 apps - how to deal with iPhone 5 screen size?