определить безопасную область для UIInputViewController из UIScreen.main.bounds

Я делаю настраиваемую клавиатуру с UIInputViewController.

Я хочу отобразить макет xib внутри прямоугольника. Прямо сейчас я определяю правильный размер CGRect, в котором я размещаю свой макет xib, из. Тем не мение, UIScrren.main.bounds.widthбольше, чем ширина безопасной области, когда я поворачиваю iPhone 11 в альбомную ориентацию. В результате мой прямоугольник слишком широкий, и его часть не отображается. iphone11 экран

Как определить безопасные границы? Я хотел бы заменить UIScreen.main.bounds с чем-то вроде UIScreen.main.safeArea но похоже, что я должен сделать что-то более сложное, чем это.

Должен ли я просто использовать UIScreen.main.nativeBounds? Если да, то я не знаю, как преобразовать пиксели в точки.

1 ответ

Прежде всего, если вы определяете высоту, я не уверен, что вам понадобится, поскольку вы не используете максимальную высоту в представлении с клавиатуры. Но для определения максимальной ширины, которая, кажется, является проблемой в шапке связанного экрана, попробуйте следующее:

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

Поскольку событие также запускается, когда отображается представление, вы можете использовать это событие для обоих обстоятельств.

Другие вопросы по тегам