禁用 iPhone 而不是 iPad 的旋转
Posted
技术标签:
【中文标题】禁用 iPhone 而不是 iPad 的旋转【英文标题】:Disable rotation for iPhone but not iPad 【发布时间】:2014-11-04 11:37:22 【问题描述】:实现这一目标的最佳方法是什么?我正在使用具有通用尺寸类的 XIB(iphone 和 ipad 的 XIB 相同),但我只想锁定 iphone 的旋转。
【问题讨论】:
【参考方案1】:可能的方向列表应该在 Info.plist 文件中,如果需要,您可以为 Ipad 和 Iphone 定义不同的值。看看下面的讨论:
https://***.com/a/24467576/3330421
【讨论】:
【参考方案2】:试试这个:
对于低于 ios 6 的版本:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
return NO;
else
return YES;
适用于 iOS 6+
- (BOOL)shouldAutorotate
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
return NO;
else
return YES;
【讨论】:
不幸的是,该方法已被贬值。 编辑了答案。使用- (BOOL)shouldAutorotate
我在 UINavigationController 上创建了一个类别,它可以工作,谢谢 :) 不过小问题,我的 alertViews 仍然旋转。
当前的 API 是 UIDevice.userInterfaceIdiom
。以上是关于禁用 iPhone 而不是 iPad 的旋转的主要内容,如果未能解决你的问题,请参考以下文章
在 App Delegate 级别基于设备强制定向和禁用旋转?
swift - 当设备旋转到横向(iPhone/iPad)时,如何让 UIView 变成全屏?
UIView 子视图不是为 iPad 自动旋转或自动调整大小