Итак, я создал новый проект с последней версией XCode и попытался зарегистрировать размер экрана моего приложения (чтобы определить тип устройства для пользовательского интерфейса). Я выполнил следующий код с моего 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;
}
Метод getDevice от Global.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;
}
}