そのため、最新バージョンの 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;
}
}