当前位置: 首页 > 知识库问答 >
问题:

iOS首先自动旋转视图

凤高翰
2023-03-14

我正在开发一款ios应用程序,它必须在横向和纵向两种模式下都能工作,但有一种视图应该始终在横向模式下。因此,我有:

-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}

如果我在横向模式下使用我的应用html" target="_blank">程序,并到达此视图并旋转设备(iPad),则调用此方法并返回false,因此界面不会旋转,好东西。

但是如果我在纵向视图中,并且到达该视图,则调用此方法并返回false,但是方向不会改变。在这种情况下,如果我将设备旋转到横向,该方法将返回true,接口将正确旋转;如果我再次尝试旋转到纵向,该方法将返回false,接口将保留在横向。

第一次看到这个视图时,如果设备是纵向的,界面会变成横向的,我如何才能做到这一点?

还有,我试过

- (NSUInteger)supportedInterfaceOrientations

但它从未被调用。

提前感谢!

共有1个答案

董哲
2023-03-14

shouldAutorotateToInterfaceOrientation:在iOS 6.0中被折旧。替换为重写supportedInterfaceOrientations和preferredInterfaceOrientationForPresentation方法。

从文档中的preferredInterfaceOrientationForPresentation

如果您的视图控制器实现了此方法,那么当呈现时,它的视图以首选方向显示(尽管它稍后可以旋转到另一个支持的旋转)。如果您不实现此方法,系统将使用状态栏的当前方向呈现视图控制器。

 类似资料:
  • 使地球自动旋转,并控制旋转速率。地球的自动旋转功能在默认情况下是关闭的,如果启动旋转功能,默认的旋转速率是1。 // 启用自动旋转功能,将转速设置为1(同时1也是默认的转速) controller.setAutoRotation( true, 1 ); // 如果之前开启了自动旋转功能,可以用这种方式将其关闭 controller.setAutoRotation( false );

  • iOS 13/13.1自动旋转的行为似乎与iOS 12不同。例如,“我的应用”允许用户在设置中将界面方向锁定为纵向或横向模式。 > 如果我在设备上有纵向旋转锁定并返回。横向在supportedInterfaceOrientations中,界面保持纵向模式,直到我在设备上禁用纵向锁定方向。iOS 12似乎并非如此。事实上,在iOS 13中甚至没有调用supportedInterfaceOrienta

  • 我有一个带有子视图控制器的视图控制器。 应强制A始终保持纵向,但应允许B自由旋转。 我知道shouldAutorotate应该适用于任何视图控制器及其子级,但有什么方法可以绕过它吗?看起来我可以使用shouldAutorotateToInterfaceOrientation,但这在iOS 8中被阻止了。 我想保持视频播放器静态(因此无论设备方向如何,水平视频始终是水平的),而控制层子视图覆盖允许自

  • 初次见面,请多多关照。我是生在博多,成长在Git社区的「猴子老师」。今天我们要来一起学习版本管理系统「Git」哦。 要把文档还原到编辑前的状态,大家都是怎么做的呢? 最简单的方法就是先备份编辑前的文档。使用这个方法时,我们通常都会在备份的文档名或目录名上添加编辑的日期。但是,每次编辑文档都要事先复制,这样非常麻烦,也很容易出错。 再加上,如果像上图那样毫无命名规则的话,就无法区分哪一个文档是最新的

  • 我正在编写一个绘图应用程序,我不希望绘图视图旋转。同时,我希望其他控件根据设备的方向很好地旋转。在iOS7中,我通过以下方式解决了这个问题: 但在iOS 8上,即使调用了该函数并正确设置了变换,也不会阻止视图旋转。 我尝试过创建一个视图控制器,它可以简单地防止视图的旋转并将其视图添加到视图层次结构中,但它不会响应用户输入。 有什么想法吗? 谢谢

  • 当我尝试使用旋转图像视图时,我现在开始学习JavaFX 它绕着它的中轴线旋转,但是当我尝试使用 它随机旋转,我不知道它的旋转轴是一样的