我正在使用XCode 4.5.1和iOS模拟器(Retina 4英寸)
我有一个项目,我以前做了一个。所以现在我想将我的项目迁移到新的解决方案。
我的问题是下一个:
我将代码集成到我的项目中以检测我的分辨率。
CGRect screenBounds = [[UIScreen mainScreen] bounds];
但是当我将screenBounds的值输出到NSLog后,我得到宽度= 320和高度= 480,但我看到了1136×640。
你有同样的问题吗?
答案 0 :(得分:1)
您确定使用的是4英寸模拟器吗? [[UIScreen mainScreen] bounds]
将以点为单位返回屏幕边界,而不是像素。因此,在4英寸iPhone中,返回的CGRect
应为 320x568 。
所以,如果你致电[[UIScreen mainScreen] bounds]
:
注意:如果您没有添加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,并以编程方式为另一个屏幕尺寸重新定位。