在Info.plist文件中设置时,颠倒方向不起作用

时间:2015-07-24 09:22:52

标签: ios swift uiinterfaceorientation

在我的Info.plist文件中,我将Supported Interface orientations设置为提供的4种可能性,包括Portrait (top home button)

当我运行我的应用程序时,当我将设备颠倒时没有任何反应。对于风景来说还不错。

如果在.plist文件中我只选择了Portrait (bottom home button),那么只有正常的肖像有效(这是有意义的),然后证明.plist文件正在运行。

如果在我的UIViewController其中一个中,我会覆盖supportedInterfaceOrientations,如下所示:

override func supportedInterfaceOrientations() -> Int {
    return Int(UIInterfaceOrientationMask.All.rawValue)
}

然后它起作用(仅适用于此UIViewController)。

那么,为什么,正如我在Info.plist中指定的那样,我无法让我的应用在纵向上运行?如果忽略它,那么将它作为文件中的选择是什么意思?

2 个答案:

答案 0 :(得分:3)

来自the doc

  

设置应用程序支持的界面方向的最简单方法是编辑项目的Info.plist文件。与视图控制器的情况一样,您可以定义允许的四个接口方向中的哪一个。有关更多信息,请参阅信息属性列表键参考。

     

如果您限制应用程序支持的方向,那么这些限制将全局应用于所有应用程序的视图控制器,即使您的应用程序使用系统视图控制器也是如此。在任何给定时间,最顶层视图控制器的掩码与应用程序的掩码进行逻辑AND运算,以确定允许的方向。此计算的结果绝不能为0.如果是,则系统抛出UIApplicationInvalidInterfaceOrientationException异常。

因此,应用程序和视图控制器必须允许方向发生。

答案 1 :(得分:0)

将此代码添加到控制器

- (NSUInteger) supportedInterfaceOrientations {
    return [super supportedInterfaceOrientations] | UIInterfaceOrientationMaskPortraitUpsideDown;
}