我的 iOS 模拟器不显示 iPhone 6 和 6 plus 的分辨率
My iOS simulator do not display resolutions of iPhone 6 and 6 plus
我有 iOS 应用程序,我使用 post 中解释的大小指令。
我正在使用 iOS 模拟器在最新的 Xcode (6.4) 版本上进行测试。当我 运行 我的项目,并且 select iPhone 4s 在设备上 selection 时,项目 运行s 具有正确的检测消息和正确的 Storyboard;如果我 运行 使用 iPhone 5 和 iPhone 5s,则相同。但是当我 select iPhone 6 或 6 Plus 时,我在这部分放置的检测和控制台日志将 iPhone 检测为 Iphone 5 并显示故事板对于 iPhone 5. 我尝试检测分辨率(以 CGRect 高度为单位,并使用 NSLog 在控制台日志上显示,但无论模拟器显示大小正确的 window,在log出现一个iphone5.
的分辨率大小
有我定义指令时的代码:
#define IS_IPHONE_4 (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)480) < DBL_EPSILON)
#define IS_IPHONE_5 (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)568) < DBL_EPSILON)
#define IS_IPHONE_6 (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)667) < DBL_EPSILON)
#define IS_IPHONE_6P (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)736) < DBL_EPSILON)
并且当我检测到设备时有代码:
//Para detectar screen size
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if (IS_IPHONE_4)
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"4sStoryboard" bundle:[NSBundle mainBundle]];
UIViewController *vc =[storyboard instantiateInitialViewController];
self.window.rootViewController = vc;
NSLog(@"iPhone 4 storyboard loaded up.");
}
else
{
if(IS_IPHONE_5)
{
UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
UIViewController *vc2 =[storyboard1 instantiateInitialViewController];
self.window.rootViewController = vc2;
NSLog(@"iPhone 5 storyboard loaded up.");
}
else
{
if (IS_IPHONE_6)
{
UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"6Storyboard" bundle:[NSBundle mainBundle]];
UIViewController *vc2 =[storyboard1 instantiateInitialViewController];
self.window.rootViewController = vc2;
NSLog(@"iPhone 6 storyboard loaded up.");
}
else
{
if (IS_IPHONE_6P)
{
UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"6pStoryboard" bundle:[NSBundle mainBundle]];
UIViewController *vc2 =[storyboard1 instantiateInitialViewController];
self.window.rootViewController = vc2;
NSLog(@"iPhone 6 plus storyboard loaded up.");
}
}
}
这是我日志的出口,不管是iphone5还是6还是6plus,检测到iPhone4s都正常:
2015-09-04 15:44:55.823 denuncia[1737:156925] iPhone 5 storyboard loaded up.
我该如何解决这个问题?我在这个地方工作了很长时间,很快就会遇到一些麻烦......非常感谢你的帮助。
我使用这段代码 没有 麻烦。尝试一下,如果它不起作用给我留言!
#define IS_IPHONE_4 ([UIScreen mainScreen].bounds.size.height == 480)
#define IS_IPHONE_5 ([UIScreen mainScreen].bounds.size.height == 568)
#define IS_IPHONE_6 ([UIScreen mainScreen].bounds.size.height == 667)
#define IS_IPHONE_6P ([UIScreen mainScreen].bounds.size.height == 736)
是的,就这么简单!
干杯
我有 iOS 应用程序,我使用
我正在使用 iOS 模拟器在最新的 Xcode (6.4) 版本上进行测试。当我 运行 我的项目,并且 select iPhone 4s 在设备上 selection 时,项目 运行s 具有正确的检测消息和正确的 Storyboard;如果我 运行 使用 iPhone 5 和 iPhone 5s,则相同。但是当我 select iPhone 6 或 6 Plus 时,我在这部分放置的检测和控制台日志将 iPhone 检测为 Iphone 5 并显示故事板对于 iPhone 5. 我尝试检测分辨率(以 CGRect 高度为单位,并使用 NSLog 在控制台日志上显示,但无论模拟器显示大小正确的 window,在log出现一个iphone5.
的分辨率大小有我定义指令时的代码:
#define IS_IPHONE_4 (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)480) < DBL_EPSILON)
#define IS_IPHONE_5 (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)568) < DBL_EPSILON)
#define IS_IPHONE_6 (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)667) < DBL_EPSILON)
#define IS_IPHONE_6P (fabs((double)[[UIScreen mainScreen]bounds].size.height - (double)736) < DBL_EPSILON)
并且当我检测到设备时有代码:
//Para detectar screen size
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if (IS_IPHONE_4)
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"4sStoryboard" bundle:[NSBundle mainBundle]];
UIViewController *vc =[storyboard instantiateInitialViewController];
self.window.rootViewController = vc;
NSLog(@"iPhone 4 storyboard loaded up.");
}
else
{
if(IS_IPHONE_5)
{
UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
UIViewController *vc2 =[storyboard1 instantiateInitialViewController];
self.window.rootViewController = vc2;
NSLog(@"iPhone 5 storyboard loaded up.");
}
else
{
if (IS_IPHONE_6)
{
UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"6Storyboard" bundle:[NSBundle mainBundle]];
UIViewController *vc2 =[storyboard1 instantiateInitialViewController];
self.window.rootViewController = vc2;
NSLog(@"iPhone 6 storyboard loaded up.");
}
else
{
if (IS_IPHONE_6P)
{
UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"6pStoryboard" bundle:[NSBundle mainBundle]];
UIViewController *vc2 =[storyboard1 instantiateInitialViewController];
self.window.rootViewController = vc2;
NSLog(@"iPhone 6 plus storyboard loaded up.");
}
}
}
这是我日志的出口,不管是iphone5还是6还是6plus,检测到iPhone4s都正常:
2015-09-04 15:44:55.823 denuncia[1737:156925] iPhone 5 storyboard loaded up.
我该如何解决这个问题?我在这个地方工作了很长时间,很快就会遇到一些麻烦......非常感谢你的帮助。
我使用这段代码 没有 麻烦。尝试一下,如果它不起作用给我留言!
#define IS_IPHONE_4 ([UIScreen mainScreen].bounds.size.height == 480)
#define IS_IPHONE_5 ([UIScreen mainScreen].bounds.size.height == 568)
#define IS_IPHONE_6 ([UIScreen mainScreen].bounds.size.height == 667)
#define IS_IPHONE_6P ([UIScreen mainScreen].bounds.size.height == 736)
是的,就这么简单!
干杯