如何阻止 UIWindow 在旋转时剪切到边界并显示"黑框"?



我正在iPad上创建一个iOS应用程序,其中我的UIWindow及其rootViewController具有所有4个界面方向的自动轮换功能。在rootViewController.view中,我添加了一个带有AVPlayer的视图。在该视图中播放的视频为 1280x1280(iPad 的屏幕对角线长度)。我想要的是,当用户旋转ipad时,视频居中且足够大,以便当动画旋转到不同的界面方向时,视频仍然会填充角落,而不是显示黑框。这可以正常工作,但我发现 UIWindow 有效地剪辑到它的边界,并且在自动旋转时仍然显示"黑色边框"。看到的黑色边框实际上是UIWindow"后面"的黑色边框。我试过设置 uiWindow.clipsToBounds = NO,这不会改变任何东西。

我知道 UIWindow 是道具,因为如果我将 UIWindow 的框架更改为 1280x1280 的大小并为其着色,则不再显示任何黑色边框。但是,在该大小下,UIWindow 的 rootView 会自动设置为 0,0,768,1024,该视图无法更改,因此我无法将此视图在超大的 UIWindow 中居中。

如何解决这个问题?

在 iOS 10 中,设置window.clipsToBounds = YES可防止黑框显示在较低窗口的顶部。

最新更新