iOS如何停止视图旋转

我希望我的iPad应用程序在您旋转iPad时停止旋转。 我想停止旋转每个视图。

任何想法有帮助?

如果你想为整个应用程序停止旋转,那么只需在app info.plist文件中更改支持的界面方向初始界面方向属性为纵向或横向取决于你

在iOS6 shouldAutorotateToInterfaceOrientation ,不推荐使用shouldAutorotateToInterfaceOrientation。 改为覆盖supportedInterfaceOrientationspreferredInterfaceOrientationForPresentation

请参见

只需检查视图控制器的自动resize属性。

(修正了语法错误)

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { if(interfaceOrientation == UIInterfaceOrientationPortrait) return YES; return NO; } 

在我的项目的info.plist我删除了iPad Supported interface orientations上的一些键,如下图所示(我只支持纵向方向)

在此处输入图像描述

全局可控旋转锁的主要思想是为每个视图控制器编写包含锁机制的UIViewController类。

您只需要全局修改supportedInterfaceOrientations方法

 - (NSUInteger)supportedInterfaceOrientations { return __orientation; } 

这里__orientation是静态变量,可以通过category方法设置。

此处列出了该类别的完整实现

请像这样更新您的projectname.plist。 支持的界面方向只有一个对象“纵向(底部主页按钮)”

我强烈建议不要在iPad上停止旋转,因为在iPad上必须支持旋转。 这是因为iPad不像iPhone那样保持正常的方式,而iPhone通常以纵向视图(AKA Vertical)保存。 因此,您必须将选择留给用户以最终锁定方向

HIG实际上并未将此作为一项要求,但作为建议,但有许多应用程序被此问题拒绝。

顺便说一下,如果您想要限制数量的视图控制器,您应该实现:

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { if(interfaceOrientation == UIInterfaceOrientationPortrait){ return YES; } }