Luke Irvin
Luke Irvin

Reputation: 1249

How do I manage background images for the iPhone 5?

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!

Upvotes: 12

Views: 8456

Answers (2)

alisonc
alisonc

Reputation: 115

Bryan's answer above worked for me, except that I had to use

[self.bgImageView setImage:backgroundImage];

rather than

backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];

The correct image only displays if I use the former.

Upvotes: 1

Bryan
Bryan

Reputation: 12190

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?

Upvotes: 16

Related Questions