2014-11-14 2 views
5

У меня есть универсальный проект для iOS, который был создан в xCode 5, который я пытаюсь передать в xCode 6. Кажется, все было хорошо, так как я не использую LaunchScreen и iPhone 6 и 6 Plus масштабируют приложение до их разрешения.iOS 8 Проблемы с ориентацией: клавиатура заканчивается в неправильном положении

Проблема возникает, когда устройство меняет ориентацию.

Сценарий:

Это происходит только на iPhone 6 и 6 Plus.

Открыть окно входа в систему с полями имени пользователя и пароля. Поверните устройство в «Пейзаж» и коснитесь поля имени пользователя или пароля. Клавиатура появляется в середине экрана с половиной вырезания. Вращение назад к портрету полностью скрывает клавиатуру, и оно больше не появляется на экране независимо от того, в какое поле вы включаетесь.

Чтобы вернуть клавиатуру обратно в Пейзаж, коснитесь поля, поверните устройство напротив Пейзажа (не отпускайте его в портрете). Клавиатура внезапно становится нормальной и действует нормально.

Problematic Keyboard

+0

Решена ли эта проблема? Если да, то как вы ее разрешили? – IamAnil

+0

Решения - это то, что я сказал в своем ответе: не используйте масштабированный режим для iphones с размером экрана> 4 " – Gui13

ответ

5

У меня такая же проблема, и это потому, что ваше приложение запускается в режиме масштабируется.
Кажется, что Apple не пошла полным способом управления ландшафтом в этом масштабированном режиме.

Решения переключиться на немашстабированную режим для iPhone 6-6Plus, используя трюк, указанным здесь: How to enable native resolution for apps on iPhone 6 and 6 Plus?

Обратите внимание, что это, вероятно, сломать много ваших экраны в процессе .. но есть нет другого решения.

0

Я столкнулся с этой проблемой в масштабируемом режиме приложения. Несмотря на то, что поддержка нескальчатого режима (добавление iPhone 6 & 6+ изображений для запуска на xcassets) решает эту проблему, в моем случае это было недопустимо, так как экраны имели статическую компоновку для каждой ориентации. Я мог бы решить эту проблему, избегая инцидентов смены контроллера корневого представления окна. Вместо этого новые контроллеры представлений были добавлены (с балансировочным удалением) в виде subview (и, следовательно, childViewController) к существующему контроллеру корневого представления.

0

Все в порядке на iOS6/7, но не на iOS8.

Ориентация клавиатуры на iOS 8 не совпадает с строкой состояния.

0

Если ваше приложение работает только в портретном режиме, вы можете прекратить генерировать уведомления о ориентации;

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]; 
+0

Я пытался остановить клавиатуру от вращения в моем приложении только для портрета, извините, что это не сработало для меня: ( –

0

Я столкнулся с этой проблемой, и после некоторых исследований я нашел кое-что, что вызвало такую ​​ошибку. В моей AppDelegate я изменил окно RootViewController, чтобы показать различный ViewControllers зависит от статуса авторизации

if (!auth) 
{ 
    self.window.rootViewController = [[AuthViewController alloc] init]; 
} else { 
    self.window.rootViewController = [[DataViewController alloc] init]; 
} 

Я снял это и переместить контроллер выберите логику NavigationViewController

if (!auth) 
{ 
    self.viewControllers = @[[[AuthViewController alloc] init]]; 
} else { 
    self.viewControllers = @[[[DataViewController alloc] init]]; 
} 

и сделать это NavigationViewController в качестве раскадровки исходного контроллера представления.

Надеюсь, это поможет!

Смежные вопросы