iOS如何停止视图旋转
我希望我的iPad应用程序在您旋转iPad时停止旋转。 我想停止旋转每个视图。
任何想法有帮助?
如果你想为整个应用程序停止旋转,那么只需在app info.plist文件中更改支持的界面方向 , 初始界面方向属性为纵向或横向取决于你
在iOS6 shouldAutorotateToInterfaceOrientation
,不推荐使用shouldAutorotateToInterfaceOrientation。 改为覆盖supportedInterfaceOrientations
和preferredInterfaceOrientationForPresentation
。
请参见
只需检查视图控制器的自动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; } }