iOS 风景 左 vs 右 vs 错

iOS Landscape Left vs Right vs Wrong

TL;DR:iOS 文档不同意 Info.plist 关于哪个方向(横向左与右)在哪一侧有主页按钮。我错过了什么吗? (例如,代码认为所处的方向与设备知道所处的方向是有区别的。见下- 到下面标记为 ❓ 的最后一个要点。)

UIDeviceOrientation 的文档说

但是,当我在 Xcode 中使用常规复选框时,Info.plist 文件显示 相反的:

以上信息把矛盾表现的很清楚了。我的问题是:我是不是遗漏了什么,或者我应该把它当作 toolchain/docs/API 中长期存在的问题?


当应用程序在模拟器或设备上运行时,实际发生了什么?以下是我收集的部分数据。为了您的阅读方便,我强调了“左”和“右”这两个词。你的大脑可能还会爆炸。

要跟踪三个数量:

当常规复选框设置为 到 "Landscape LEFT":

我觉得主要是XcodeUI和info.plist之间的矛盾问题。 Xcode UI 显示“设备 方向”,而 info.plist 表示 "Supported Interface Orientation"。但正如我们所知,这两者是不同的东西,所以那里肯定有问题。

假设,在两者之间,info.plist ,那么这些字段(对于iPhone和iPad)用于指定支持界面方向。 IE。您也可以通过 supportedInterfaceOrientations.

在特定的视图控制器中覆盖相同的选项

相反,引用的文档页面是关于 Device 方向的,它自己定义了什么是 landscapeLeft:右侧的主页按钮。

现在,查看界面方向掩码docs, there's no real detail on what is landscapeLeft, but old Xcode UI screenshots show that home button is to the left. See e.g. from this SO thread

EDIT:界面方向 doc page 而不是详细说明什么是 landscapeLeft:主页按钮在左侧,如图所示在旧的屏幕截图中。

结论

所以,总而言之,在我看来:

  1. Xcode UI/info.plist是关于支持的界面方向,它有自己的横向定义left/right

  2. 设备方向与横向定义相反left/right