如何在某些情况下停止 iPad 旋转?
Posted
技术标签:
【中文标题】如何在某些情况下停止 iPad 旋转?【英文标题】:How to stop iPad rotation some occasion? 【发布时间】:2013-11-03 19:08:48 【问题描述】:我有 iPad 应用程序,它是单视图应用程序。该应用程序支持 横向和纵向视图。但它有一个按钮,如果按下它,我想停止该屏幕中的旋转。之后再次按下它,我想再次启用旋转,用户可能不得不再次旋转它。我该怎么做?
【问题讨论】:
在shouldRotate
方法中添加一些代码来检查按钮是否被按下。
【参考方案1】:
来自苹果的网站: “如果你想暂时禁用自动旋转,请避免操作方向掩码来执行此操作。相反,覆盖最顶层视图控制器上的 shouldAutorotate 方法。在执行任何自动旋转之前调用此方法。如果它返回 NO,则旋转被抑制。”
【讨论】:
【参考方案2】:取决于需要支持的平台。如果只有一个比你有理想的情况,不如我:
#pragma mark -
#pragma mark allow rotations
// ios 5
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
return YES;
// iOS6
- (BOOL)shouldAutorotate
return YES;
// iOS6
- (NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskAll;
该代码将允许旋转。 处理按钮操作并检查变量并返回允许的状态
【讨论】:
【参考方案3】:视图控制器具有 shouldAutorotate 功能,因此只需使用布尔变量(在本例中为“allowAutoRotation”,类似于:
-(BOOL)shouldAutorotate
return allowAutoRotation;
【讨论】:
以上是关于如何在某些情况下停止 iPad 旋转?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iPhone 的横向模式下停止 ABPersonViewController 和 ABNewPersonViewController 的旋转
在 Universal Xcode 6 项目中仅停止 iPhone 屏幕旋转