Ipad 不应旋转的主视图,但应旋转的子视图,包括UIPopoverController

Ipad 不应旋转的主视图,但应旋转的子视图,包括UIPopoverController,ipad,uiviewcontroller,rotation,subview,uipopovercontroller,Ipad,Uiviewcontroller,Rotation,Subview,Uipopovercontroller,在我花更多的时间尝试错误之前,我希望能得到一些帮助 想象一下:我刚刚开始为iPad创造一些东西,它看起来像一个仪表板,上面有一个刻度盘上的数字。旋转iPad(纵向、景观左等)时,背景不应旋转,刻度盘位置应保持不变,但刻度盘内部应旋转至正确位置。因此,主视图不应旋转,但子视图(刻度盘内部)应旋转。我以前在iPhone上这样做过,告诉viewController只能是纵向的,然后检查UIDeviceOrientation,所以我觉得这很容易。但我的头痛是从显示超控器开始的。由于我没有更改UIInte

在我花更多的时间尝试错误之前,我希望能得到一些帮助

想象一下:我刚刚开始为iPad创造一些东西,它看起来像一个仪表板,上面有一个刻度盘上的数字。旋转iPad(纵向、景观左等)时,背景不应旋转,刻度盘位置应保持不变,但刻度盘内部应旋转至正确位置。因此,主视图不应旋转,但子视图(刻度盘内部)应旋转。我以前在iPhone上这样做过,告诉viewController只能是纵向的,然后检查UIDeviceOrientation,所以我觉得这很容易。但我的头痛是从显示超控器开始的。由于我没有更改UIInterfaceOrientation,UIPopoverController将始终处于纵向

理想的解决方案是让主视图(viewController中的self.view)不观察旋转的变化,但允许子视图这样做,但据我所知,这是不可能的。我能想到的唯一其他解决方案是不设置旋转变化的动画,而是将子视图(刻度盘)移动到它们的新位置。为它们(子视图)设置动画可以使整个地方跳舞。但我还没有找到任何好的解决办法


任何人有什么想法吗?

您认为如果主视图不旋转,则子视图不可能自动旋转,这是正确的

想到的解决方法是:旋转视图时设置动画的是视图变换中的更改。我非常确定,您可以注册以接收设备方向更改,当您获得更改时,将变换更改设置为包含所有要旋转的子视图的容器视图的动画

编辑:只需阅读有关您拥有popover控制器的内容

就popover而言,API管理自动旋转的方式是隐藏popover,然后在旋转结束时再次显示它。实现类似的行为应该不会太难


我想到的另一件事是:你不想旋转的只是背景吗?只有两种背景,一种是肖像背景,另一种是风景背景,你可以在它们之间切换,这样行吗?这可能不是最漂亮的,但可能比自己重新创建自转行为更容易。

谢谢Simon。基本上,我希望刻度盘保持在相同的位置,只是根据iPad操作系统的操作方式围绕其中心旋转。这可以通过注册方向更改来轻松实现。这里的“问题制造者”是popover控制器,它(总是?)将显示在活动UIInterfaceOrientation中。我将尝试做的是在动画中淡出到新的方向,然后再次淡入。是的,popover控制器似乎需要一些工作。我有点恼火,因为它有一些我无法影响的行为。