Reputation: 1249
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
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
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