Изменение ориентации пользовательской клавиатуры iOS 8

Я создал клавиатуру для iOS 8, используя один xib-файл и несколько подпредставлений. Однако эта клавиатура работает только в портретном режиме, и при вращении устройства клавиатура не меняет свой размер или длину. Я решил, что мне нужно создать еще один файл xib с подвидами для ландшафта, и когда устройство вращается, файлы xib переключаются. Мой вопрос в том, как я могу это сделать? Как бы сделать так, чтобы программа знала, когда переключать xib файлы. Я думал, что должен использовать что-то вроде того, что предлагается здесь: https://stackoverflow.com/a/25222353/2057171 Но я не знаю, как бы я это реализовал. Любая помощь приветствуется.


person Jalal Jabarkhiel    schedule 09.09.2014    source источник


Ответы (1)


Один xib для портретной и альбомной ориентации

Можно иметь только один xib как для книжной, так и для альбомной ориентации, если вы включите автомакет для своих представлений в файле xib. Это шаги, которые я сделал на своей тестовой клавиатуре.

  1. Включите и настройте автомакет для представлений в файле xib.
  2. Загрузите и добавьте это подпредставление в "inputView"
  3. Программно настройте ограничения для этого подпредставления по отношению к inputView.

«inputView» автоматически изменяет размеры при переключении между портретной и альбомной ориентацией, поэтому, когда у вас есть настройки ограничений для вашего представления по отношению к «inputView», ваше представление будет автоматически корректироваться.

Отдельный xib для книжной и альбомной ориентации

Если вы решите иметь отдельные xib-файлы для портретного и альбомного видов, вам может потребоваться загрузить и добавить правильное подпредставление в inputView при каждом изменении ориентации. Я не делал этого лично, но я считаю, что updateViewConstraints() вызывается всякий раз, когда изменяется ориентация, поэтому вы можете реализовать свою логику там.

person Enrico Pangan    schedule 16.09.2014