我有一个在某些(但不是全部)屏幕上旋转的应用程序,我还想添加一个UIView作为显示在所有屏幕上的叠加层,所以我想我会将它添加到窗口中。现在的问题是,当我旋转设备时,屏幕会旋转,但覆盖视图不会旋转。

我也试过使用两个UIViewControllers,一个用于普通的东西,一个用于叠加视图,但我对此没有寄予厚望,我是对的。只有一个UIViewController实际上会旋转。

那么如何使用界面旋转叠加层,希望无需向每个旋转的视图控制器添加代码以旋转叠加层。

有帮助吗?

解决方案

我认为你的怀疑是正确的。您必须将子视图添加到每个视图控制器。我不知道为什么,但是当您添加多个视图作为窗口的子视图时,只有第一个视图获得 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation调用每个方向更改。

我没有试过这个,但似乎你可以创建一个单独的父视图控制器,你添加为窗口的子视图,它将包含你的导航控制器以及你的覆盖视图控制器。也许它会正确地调用-shouldAutotrotateToInterfaceOrientation。这是假设,因为我还没有尝试过,但我确信只是将叠加视图添加到窗口是不行的。

最诚挚的问候,

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top