我正在使用 XCode 4.5.1 和 iOS 模拟器(视网膜 4 英寸)
我有一年前做的项目。所以现在我想将我的项目迁移到新的分辨率。
我的问题是下一个:
我将代码集成到我的项目中以检测我拥有的分辨率。
CGRect screenBounds = [[UIScreen mainScreen] bounds];
但是在我将 screenBounds 的值输出到 NSLog 之后,我得到了宽度 = 320 和高度 = 480,但我预计会看到 1136 × 640。
你有同样的问题吗?
您确定您使用的是 4 英寸模拟器吗?[[UIScreen mainScreen] bounds]将以点为单位返回屏幕边界,而不是像素。所以在 4 英寸 iPhone 中CGRect返回的应该是320x568。
所以如果你打电话[[UIScreen mainScreen] bounds]:
注意:如果您没有添加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
}
要使您的应用程序适应新的更高屏幕,您要做的第一件事是将启动图像更改为:Default-568h@2x.png。它的大小应为 1136x640 (HxW)。是的,在新的屏幕尺寸中使用默认图像是让您的应用程序占据整个新 iPhone 5 屏幕的关键。
此外,您还必须采取更多步骤:
确保您的 Xibs/Views 使用自动布局来调整自己的大小。使用弹簧和支柱来调整视图大小。如果这对您的应用程序来说还不够好,请为一种特定的屏幕尺寸设计您的 xib/storyboard,并以编程方式为另一种屏幕尺寸重新定位。