12

我的一些应用程序使用自定义图像作为背景。检查屏幕尺寸以放置正确图像的正确方法是什么?

在 viewDidLoad 中是否应该是这样的:

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

非常感谢任何提示/建议!

谢谢!

4

2 回答 2

16

以下代码检查屏幕的大小/边界。如果屏幕是 586 点(请记住,由于 Retina,屏幕以点为单位测量)比我们知道它是新的 4 英寸 Retina 显示屏。

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

另请参阅iOS 6 应用程序 - 如何处理 iPhone 5 的屏幕尺寸?

于 2012-09-18T20:23:42.790 回答
1

上面布莱恩的回答对我有用,除了我必须使用

[self.bgImageView setImage:backgroundImage];

而不是

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

只有当我使用前者时才会显示正确的图像。

于 2012-12-11T19:51:32.093 回答