Как вы мешаете UIWindow обрезать границы при вращении и показывать «черную рамку»?

Я создаю приложение iOS на iPad, где у меня есть UIWindow с его rootViewController, имеющим автоповорот для всех 4 ориентаций интерфейса. В rootViewController.view я добавил представление с помощью AVPlayer. Видео, которое воспроизводится в этом представлении, имеет разрешение 1280x1280 (длина диагонали экрана iPad). Я хочу, чтобы, когда пользователь поворачивает ipad, видео центрировалось и было достаточно большим, чтобы при анимированном вращении в другую ориентацию интерфейса видео по-прежнему заполняло углы, а не показывало черную рамку. Это будет работать нормально, но я обнаружил, что UIWindow эффективно обрезает свои границы и по-прежнему показывает «черную рамку» при автоповороте. Видимая черная рамка на самом деле является черным цветом того, что находится «за» UIWindow. Я попытался установить uiWindow.clipsToBounds = NO, и это ничего не меняет.

Я знаю, что проблема заключается в UIWindow, потому что, если я изменю размер фрейма UIWindow на 1280x1280 и раскрашу его, черная рамка больше не будет отображаться. Однако при таком размере для rootView UIWindow автоматически устанавливается значение 0,0,768,1024, которое нельзя изменить, и поэтому я не могу центрировать это представление в увеличенном UIWindow.

Как я могу решить эту проблему?


person Geoff H    schedule 09.09.2013    source источник


Ответы (1)


В iOS 10 параметр window.clipsToBounds = YES предотвращает отображение черной рамки поверх нижних окон.

person ryecroft    schedule 05.01.2017