Я создал клавиатуру для iOS 8, используя один xib-файл и несколько подпредставлений. Однако эта клавиатура работает только в портретном режиме, и при вращении устройства клавиатура не меняет свой размер или длину. Я решил, что мне нужно создать еще один файл xib с подвидами для ландшафта, и когда устройство вращается, файлы xib переключаются. Мой вопрос в том, как я могу это сделать? Как бы сделать так, чтобы программа знала, когда переключать xib файлы. Я думал, что должен использовать что-то вроде того, что предлагается здесь: https://stackoverflow.com/a/25222353/2057171 Но я не знаю, как бы я это реализовал. Любая помощь приветствуется.
Изменение ориентации пользовательской клавиатуры iOS 8
Ответы (1)
Один xib для портретной и альбомной ориентации
Можно иметь только один xib как для книжной, так и для альбомной ориентации, если вы включите автомакет для своих представлений в файле xib. Это шаги, которые я сделал на своей тестовой клавиатуре.
- Включите и настройте автомакет для представлений в файле xib.
- Загрузите и добавьте это подпредставление в "inputView"
- Программно настройте ограничения для этого подпредставления по отношению к inputView.
«inputView» автоматически изменяет размеры при переключении между портретной и альбомной ориентацией, поэтому, когда у вас есть настройки ограничений для вашего представления по отношению к «inputView», ваше представление будет автоматически корректироваться.
Отдельный xib для книжной и альбомной ориентации
Если вы решите иметь отдельные xib-файлы для портретного и альбомного видов, вам может потребоваться загрузить и добавить правильное подпредставление в inputView при каждом изменении ориентации. Я не делал этого лично, но я считаю, что updateViewConstraints() вызывается всякий раз, когда изменяется ориентация, поэтому вы можете реализовать свою логику там.