如何在模拟器上检测iPhone 6(6 plus)

时间:2014-12-22 16:02:27

标签: ios ios8 xcode6 iphone-6 iphone-6-plus

我发现这个很好的定义:

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)

#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
#define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))

#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)

但是当我运行iPhone 6模拟器或iPhone 6 plus模拟器时,它每次都像iPhone 5一样工作。

我检查了屏幕尺寸:

(lldb) po [UIScreen mainScreen]
<UIScreen: 0x7ffb3a402930; bounds = {{0, 0}, {320, 568}}; mode = <UIScreenMode: 0x7ffb3a520a80; size = 640.000000 x 1136.000000>>

似乎外翻很明显为什么它指向iPhone 5而不是iPhone 6或iPhone 6 plus。

1 个答案:

答案 0 :(得分:3)

您必须添加相应的启动图像,以便应用设备/模拟器开始使用实际尺寸而不是缩放或模拟尺寸,直到您为Retina HD 5.5Retina HD 4.7添加了启动图像不要使用新尺寸。

单击“项目常规设置”中“启动图像源”上的小灰色箭头,然后添加相应的启动图像。 enter image description here