因此,我用最新版本的XCode创建了一个新项目,并try 记录我的应用程序的屏幕大小(以确定UI的设备类型).我在iPhone 5上运行了以下代码:
NSLog(@"%f", [[UIScreen mainScreen] bounds].size.height);
返回480
,这是旧iPhone系列的屏幕大小.我在模拟器里试过,同样的事情发生了.我是否需要在项目中启用一些属性才能识别屏幕大小?
这只发生在5+个设备上;如果我在iPad上运行游戏,它会识别1024屏幕大小.
我知道这个代码在过go 是有效的.不久前,我用完全相同的方法制作了一个游戏,它检测屏幕大小没有问题,但这是在XCode 4中构建的.十、
其他信息:
我使用的是自定义视图控制器,我在App Delegate中使用以下代码创建该控制器:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if([Global getDevice] == 1)
{
//iPhone 5+
self.window.rootViewController = [[FivePlus alloc] initWithNibName:nil bundle:nil];
}
else if([Global getDevice] == 2)
{
//iPhone 4S-
self.window.rootViewController = [[FourSMinus alloc] initWithNibName:nil bundle:nil];
}
else
{
//iPad
self.window.rootViewController = [[iPad alloc] initWithNibName:nil bundle:nil];
}
[[self window] makeKeyAndVisible];
// Override point for customization after application launch.
return YES;
}
来自全局的getDevice方法.h:
+ (int)getDevice
{
if([[UIScreen mainScreen] bounds].size.height == 568 || [[UIScreen mainScreen] bounds].size.width == 568)
{
return 1;
}
else if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
return 3;
}
else
{
return 2;
}
}