Я пытаюсь создать пользовательское окно UIWindow для поведения наложения, и везде я видел, что «UIWindow не основано на ориентации»; Ведьма это именно то, что я хочу, так как я хочу соответствовать границам физического устройства.
На iPhone все выглядит нормально, UIWindow остается согласованным, и у меня хорошее и спокойное поведение; границы не двигаются при повороте устройства:
На iPad с той же версией, точно таким же кодом, Я получаю анимацию вращения на своем слое UIWindow (которое я использую для рисования границ), и это приводит к появлению этого странного макета:
Я не использую уведомление о ротации; потому что я не хочу отвечать на повороты. Я использую нативно-ориентированные границы UIScreen nativeBounds, чтобы убедиться, что у меня нет чего-то, что чувствительно к ориентации. Такое разное поведение на разных устройствах делает меня неудобным.
Кто-то уже сталкивался с таким странным поведением? Как вы на это реагируете?
Есть хорошая практика или обходной путь?
Полный код проекта, включая примеры приложений, находится здесь:
https://github.com/Dean151/RecordingOverlay
Конкретный код оверлея и подкласса UIWindow находится здесь:
https://github.com/Dean151/RecordingOverlay/blob/master/Sources/RecordingOverlay/RecordingOverlay.swift