因此,我使用最新版本的 XCode 创建了一个新项目,并尝试记录我的应用程序的屏幕大小(以确定 UI 的设备类型)。我从我的 iPhone 5 运行以下代码:
NSLog(@"%f", [[UIScreen mainScreen] bounds].size.height);
这返回480
了 ,这是旧 iPhone 系列的屏幕尺寸。我在模拟器中尝试过,同样的事情发生了。我必须在项目中启用一些属性才能识别屏幕尺寸吗?
这只发生在 5 台以上的设备上;如果我在 iPad 上运行游戏,它会识别 1024 屏幕尺寸。
我知道这个代码在过去是有效的。不久前我使用完全相同的方法制作了一个游戏,它检测屏幕大小没有问题,但这是在 XCode 4.x 中构建的。
附加信息:
我正在使用自定义视图控制器,我使用以下代码在 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;
}
Global.h 中的 getDevice 方法:
+ (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;
}
}