我试图构建一个专门针对 iPhone 6 和 6 Plus 的应用程序版本,但我没有任何硬件可以使用。因此,我必须在模拟器上进行测试!但是似乎模拟器存在一个奇怪的 bug!首先,我通过以下代码获取屏幕分辨率和比例:
UIScreen *mainScreen = [UIScreen mainScreen];
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f",
NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);
以下是检测 iPhone 6 和 6 Plus(肖像模式)的方法:
#define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 667)
#define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 736)
问题是!当我在iPhone 6 / Plus模拟器上启动我的应用程序时,编译器会给我iPhone 4“显示屏的屏幕信息:
2014-09-28 12:32:08.153 WOD[2924:42290]
Screen bounds: {{0, 0}, {320, 568}}, Screen resolution: <UIScreen: 0x7fa15be0f9b0; bounds = {{0, 0}, {320, 568}}; mode = <UIScreenMode: 0x7fa15bd0d4a0;
size = 640.000000 x 1136.000000>>, scale: 2.000000, nativeScale: 2.000000
但是在新项目上它运行得很好!(我不能创建新项目并重新开始!)我 清理代码
,删除构建文件夹
,更改项目名称
,并重置模拟器内容设置
,但仍然给我4英寸显示器的信息!
我已经查看了这个Q/A,但答案需要一个真实的设备!