0

我正在使用 XCode 4.5.1 和 iOS 模拟器(视网膜 4 英寸)

我有一年前做的项目。所以现在我想将我的项目迁移到新的分辨率。

我的问题是下一个:

我将代码集成到我的项目中以检测我拥有的分辨率。

CGRect screenBounds = [[UIScreen mainScreen] bounds];

但是在我将 screenBounds 的值输出到 NSLog 之后,我得到了宽度 = 320 和高度 = 480,但我预计会看到 1136 × 640。

你有同样的问题吗?

4

2 回答 2

1

您确定您使用的是 4 英寸模拟器吗?[[UIScreen mainScreen] bounds]将以点为单位返回屏幕边界,而不是像素。所以在 4 英寸 iPhone 中CGRect返回的应该是320x568

所以如果你打电话[[UIScreen mainScreen] bounds]

  • <= iPhone 3GS:320x480
  • iPhone 4 和 iPhone 4S:320x480
  • iPhone 5:320x568

注意:如果您没有添加Default-568h@2x.png文件,并且应用程序以信箱方式运行,则您使用的方法将返回 iPhone 4 和 4S 值。

提示:要确定您使用的是 iPhone 5 还是其他设备,此代码可能会派上用场:

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

if( IS_IPHONE_5 )
{
    // iPhone 5
}
else
{
   // Other
}
于 2012-10-20T20:22:52.790 回答
1

要使您的应用程序适应新的更高屏幕,您要做的第一件事是将启动图像更改为:Default-568h@2x.png。它的大小应为 1136x640 (HxW)。是的,在新的屏幕尺寸中使用默认图像是让您的应用程序占据整个新 iPhone 5 屏幕的关键。

此外,您还必须采取更多步骤:

确保您的 Xibs/Views 使用自动布局来调整自己的大小。使用弹簧和支柱来调整视图大小。如果这对您的应用程序来说还不够好,请为一种特定的屏幕尺寸设计您的 xib/storyboard,并以编程方式为另一种屏幕尺寸重新定位。

于 2012-10-20T20:22:58.683 回答