如何仅支持一个 UIView 的横向/纵向方向

Posted

技术标签:

【中文标题】如何仅支持一个 UIView 的横向/纵向方向【英文标题】:how to support landscape/Portrait orientation only for one UIView 【发布时间】:2010-10-23 11:41:02 【问题描述】:

我在基于导航的应用程序中有 5 个视图控制器,我需要在一个视图中同时支持横向/纵向模式,以下项目显示在视图中 导航栏 带有两个按钮的工具栏 UIImageView 在中心。 导航栏下方的UILabe。

谁能帮助我如何支持仅针对此视图的方向更改。

问候,

山姆。

【问题讨论】:

【参考方案1】:

您应该在视图控制器中使用 shouldAutorotateToInterfaceOrientation,并为应该支持横向/纵向的视图控制器返回 YES

http://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/shouldAutorotateToInterfaceOrientation:

【讨论】:

好吧,我重写了 shouldAutorotateToInterfaceOrientation: 以返回“YES”,但没有运气,我只需要一个视图来支持横向/纵向方向...,所以我没有在其他视图中重写 shouldAutorotateToInterfaceOrientation查看控制器。 我猜你的情况是:“你的 UITabBarController 或 UINavigationController 中的所有子视图控制器不同意一个共同的方向集。为了确保你所有的子视图控制器正确旋转,你必须实现 shouldAutorotateToInterfaceOrientation每个视图控制器代表每个选项卡或导航级别。每个视图控制器都必须同意相同的方向才能发生旋转。也就是说,对于相同的方向位置,它们都应该返回 YES。 developer.apple.com/library/ios/#qa/qa2010/qa1688.html 我认为您应该使用 self.view.transform 手动旋转。并通过 deviceNotifications 获取轮换警报。

以上是关于如何仅支持一个 UIView 的横向/纵向方向的主要内容,如果未能解决你的问题,请参考以下文章

IOS 6 方向 - 只有一个 Viewcontroller 支持横向和纵向方向 - 否则只支持纵向

iOS应用程序只能支持一个tabBar项目的横向方向吗?

当视图从纵向更改为横向时,方向不会改变

如何在仅纵向应用程序中使用 MPMovieViewController 播放横向视频

UIView 旋转,模态视图横向和纵向,父级无法渲染

iOS 8 - UIWindow 方向总是纵向的