Это странная проблема, которая может быть связана со всеми проблемами ориентации, которые я вижу в iOS8.
У меня универсальное приложение. Версия для iPad поддерживает только альбомную ориентацию, а версия для iPhone — только портретную.
Когда пользователь открывает версию для iPad, она открывается в ландшафтном режиме, что и ожидается. Однако каждый элемент управления в правой части представления не реагирует на события касания пользователя. Затронутая область имеет ширину 256, а область слева, которая «работает», имеет ширину 768 (ширина портрета). Поэтому, даже если приложение открывается в альбомной ориентации, приложение считает, что оно в портретной ориентации. Поскольку телефонная версия поддерживает только книжную ориентацию, проблема не проявляется там, хотя я считаю, что проблема не связана с конкретным устройством, однако проблема затрагивает только устройства под управлением iOS8.
Приложение изначально разрабатывалось для iOS4 и с тех пор претерпело несколько итераций. Однако большая часть исходного кода и перьев все еще используется. Другие проблемы с ориентацией появились с iOS8 и могут быть связаны или нет, кто знает?
Поскольку приложение изначально было разработано для iOS4, раскадровки не использовались и не используются до сих пор. Я проверил некоторые вещи: удостоверился, что все перья отмечены флажком 'Автоматическое изменение размера подвидов', и удостоверился, что в списке приложений существуют только альбомные ориентации (проверено в XML). Вот фрагмент кода из AppDelegate didFinishLaunchingWithOptions:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
[self.window setFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[AppMainViewController alloc] initWithNibName:nib bundle:nil];
//...
return YES;
}
На изображении я показываю как портретный, так и альбомный размеры. Как я упоминал ранее, контроллер представления рендерится и выглядит так, как должен в альбомной ориентации, но все, что находится в красной области изображения, не реагирует на касания пользователя.
Возможно, я слишком долго рассматривал эту проблему, и, надеюсь, у кого-то есть понимание, почему это происходит. Кто угодно? Спасибо!