Ios 在模拟器上检测iPhone 6/Plus有问题
我正在尝试为iPhone 6和6 Plus专门构建一个应用程序版本,但我没有任何硬件,我必须在模拟器上进行测试!但看起来,模拟器有一个奇怪的错误!首先,对于大多数情况,我通过以下代码获得屏幕分辨率和比例:Ios 在模拟器上检测iPhone 6/Plus有问题,ios,objective-c,iphone,xcode,Ios,Objective C,Iphone,Xcode,我正在尝试为iPhone 6和6 Plus专门构建一个应用程序版本,但我没有任何硬件,我必须在模拟器上进行测试!但看起来,模拟器有一个奇怪的错误!首先,对于大多数情况,我通过以下代码获得屏幕分辨率和比例: UIScreen *mainScreen = [UIScreen mainScreen]; NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f", NSStringFrom
UIScreen *mainScreen = [UIScreen mainScreen];
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f",
NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);
下面是如何检测iPhone 6和6Plus(纵向模式):
问题是!当我在iPhone6/Plus模拟器上使用我的应用程序时,编译器会向我提供iPhone4“显示屏的sceen信息:
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
2014-09-2812:32:08.153世界杯[2924:42290]
屏幕边界:{0,0},{320568},屏幕分辨率:,比例:2.000000,nativeScale:2.000000
但它在新项目上运行良好!(我无法创建新项目并重新开始!)。
我清理代码
,删除生成文件夹
,更改项目名称
,并重置模拟器内容设置
,但仍然提供4“显示信息
我已经检查过了,但答案需要一个真正的设备 我遇到这个问题的主要原因是我用
Xcode 5
构建应用程序,然后用Xcode 6
打开它
解决方案:
添加Retina HD 5.5和4.7的发布图像:
现在,您可以在模拟器上检测iPhone 6/Plus,而无需使用真正的设备:
#define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 667)
#define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 736)
如果您需要在横向中检测到iPhone 6/6Plus,请使用此选项
#define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 667)
#define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 736)
您在xcode 5中创建了此项目,并在6中打开。。。是吗?@FahimParkar是的,我做到了!您是否尝试添加启动屏幕?甚至主板也不错。为iphone 6添加启动屏幕。。。你可能会得到合适的尺寸…嗯。。。午餐屏幕?当iPhone5出现时也发生了同样的事情。。。这是唯一的解决办法。。。但我忘记了:D:)您需要添加正确大小的图像,或者必须使用启动屏幕
#define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 667)
#define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 736)