UiViewController旋转问题

发布于 2024-10-09 10:38:14 字数 412 浏览 7 评论 0原文

我的应用程序中有主菜单仅支持横向模式。 我通过设置 UIRootViewController::shouldAutorotateToInterfaceOrientation:... 来实现横向限制 我还有另一个支持肖像模式的场景。 因此,当我以纵向模式从另一个场景转到主菜单时,问题就出现了:应用程序不会自动旋转到横向,并且我找不到手动旋转它的代码方法。

有解决办法吗?会很感激。

编辑:对不起,我忘了添加细节。 RootViewController 对于菜单和其他场景很常见。更重要的是 - 这些场景位于一个公共视图中(我的应用程序使用 OpenGL) 因此,在从纵向场景进入菜单之前,我将 UIRootViewController::shouldAutorotateToInterfaceOrientation: 设置为仅针对横向场景返回 YES。

I have main menu in my app supporting only landscape mode.
I implement landscape restriction by setting up UIRootViewController::shouldAutorotateToInterfaceOrientation:...
And I have another scene with portrait mode support.
So the problem appears when I pass from another scene to main menu in portrait mode: the app doesn't rotate to landscape automatically, and I can't find a code method to manually rotate it.

Is there a solution? Would be thankful.

Edit: Excuse me, I forgot to add details. RootViewController is common for menu and another scene. And what is more - these scenes are in one common view (my app uses OpenGL)
So before I enter menu from portrait scene I set UIRootViewController::shouldAutorotateToInterfaceOrientation: to return YES for landscape only.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜中书 2024-10-16 10:38:14

如果您的其他支持纵向的场景由另一个 UIViewController 控制,那么您可以使用该视图控制器的 -shouldAutorotateToInterfaceOrientation: 来定义其行为。在许多情况下,仅此一项就足够了。当然,如果您需要对某些视图控制器进行一些奇特的旋转,但不需要对其他视图控制器进行一些奇特的旋转,那么事情就会变得有点棘手。

If your other scene with portrait support is controlled by another UIViewController, then you can use that view controller's -shouldAutorotateToInterfaceOrientation: to define its behavior. In many cases, this alone should be enough. Of course, if you need to do some fancy rotations for some view controller but not for others, then things get a bit trickier.

带上头具痛哭 2024-10-16 10:38:14

没有简单的方法可以做到这一点,除了 [UIDevice setOrientation:],它不向开发者开放,并导致应用程序被 Apple 拒绝。

There is no easy way to do this, except [UIDevice setOrientation:], which is not open to developers, and leads to application rejection by Apple.

筱武穆 2024-10-16 10:38:14

您可以对图层应用旋转,这将产生完全相同的效果。

myview.layer.transform = CATransform3DMakeRotation(M_PI/2, 0.0f, 0.0f, 1.0f);

You can apply a rotation to your layer which will create the exact same effect.

myview.layer.transform = CATransform3DMakeRotation(M_PI/2, 0.0f, 0.0f, 1.0f);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文