将问题迁移到iphone 5分辨率

时间:2012-10-20 19:24:02

标签: ios ios6 iphone-5

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

我有一个项目,我以前做了一个。所以现在我想将我的项目迁移到新的解决方案。

我的问题是下一个:

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

CGRect screenBounds = [[UIScreen mainScreen] bounds];

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

你有同样的问题吗?

2 个答案:

答案 0 :(得分: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文件,并且应用程序运行 letterboxed ,您使用的方法将返回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
}

答案 1 :(得分:1)

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

此外,您还需要采取更多措施:

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