在我的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
中指定的那样,我无法让我的应用在纵向上运行?如果忽略它,那么将它作为文件中的选择是什么意思?
答案 0 :(得分:3)
来自the doc:
设置应用程序支持的界面方向的最简单方法是编辑项目的Info.plist文件。与视图控制器的情况一样,您可以定义允许的四个接口方向中的哪一个。有关更多信息,请参阅信息属性列表键参考。
如果您限制应用程序支持的方向,那么这些限制将全局应用于所有应用程序的视图控制器,即使您的应用程序使用系统视图控制器也是如此。在任何给定时间,最顶层视图控制器的掩码与应用程序的掩码进行逻辑AND运算,以确定允许的方向。此计算的结果绝不能为0.如果是,则系统抛出UIApplicationInvalidInterfaceOrientationException异常。
因此,应用程序和视图控制器必须允许方向发生。
答案 1 :(得分:0)
将此代码添加到控制器
- (NSUInteger) supportedInterfaceOrientations {
return [super supportedInterfaceOrientations] | UIInterfaceOrientationMaskPortraitUpsideDown;
}