Я создаю пользовательскую клавиатуру на iOS, используя Objective-C. Чтобы увеличить высоту клавиатуры, чтобы сделать ее такой же, как высота клавиатуры по умолчанию (с панелью предложений) как для книжной, так и для альбомной ориентации, я программно добавил ограничения по высоте {я удалил ранее добавленное ограничение перед добавлением нового}.
Я обновляю высоту в методе viewWillLayoutSubviews
класса, чтобы при изменении ориентации достигалась желаемая высота клавиатуры, и она работала отлично.
Но моя проблема заключается в том, что при изменении ориентации представление автоматически не отображается идеально, как на клавиатуре по умолчанию в iOS, а изменяется представление, а затем обновляет высоту, а затем расширяется вправо от экрана, чтобы покрыть всю область. (в основном рывок происходит до полной загрузки клавиатуры)
Кроме того, при инициализации клавиатуры представление загружается с высотой по умолчанию, а затем обновляет пользовательскую высоту. После этого он применяет ограничение автоматической компоновки и обновляет пользовательский интерфейс, тем самым обеспечивая полную компоновку экрана клавиатуры. Весь процесс выглядит немного дергано.
Я использую xib с автоматической компоновкой. Если я не обновлю пользовательскую высоту клавиатуры, вышеупомянутые рывки будут решены, но высота клавиатуры останется по умолчанию, разрешенной Apple.
Другое дело, что в XIB много просмотров и, следовательно, много ограничений. Если я удалю ограничения, клавиатура загружается довольно быстро, а также достигается пользовательская высота. Но как только я поворачиваю устройство, вид не раскладывается, и я застреваю с половиной клавиатуры на экране.
Любое предложение было бы здорово!