禁用 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 级别基于设备强制定向和禁用旋转?

在iPad上锁定方向并禁用旋转

swift - 当设备旋转到横向(iPhone/iPad)时,如何让 UIView 变成全屏?

UIView 子视图不是为 iPad 自动旋转或自动调整大小

状态栏旋转,但应用程序不旋转,在 iPhone 上 - 在 iPad 上工作正常?

iPhone/iPad 相机覆盖视图自动旋转问题 UIImagePickerController