我发现这个很好的定义:
#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。
答案 0 :(得分:3)
您必须添加相应的启动图像,以便应用设备/模拟器开始使用实际尺寸而不是缩放或模拟尺寸,直到您为Retina HD 5.5
和Retina HD 4.7
添加了启动图像不要使用新尺寸。
单击“项目常规设置”中“启动图像源”上的小灰色箭头,然后添加相应的启动图像。