gpt4 book ai didi

iOS横向左vs右vs错误

转载 作者:行者123 更新时间:2023-12-01 15:23:16 25 4
gpt4 key购买 nike

TL;DR:iOS 文档不同意 Info.plist关于哪个方向(横向左侧与右侧)在哪一侧有主页按钮。我错过了什么吗? (例如,代码认为它所处的方向与设备知道它所处的方向之间存在区别。请参阅下面标记为 ❓ 的倒数第二个要点。)

UIDeviceOrientation 的文档说

screenshot from docs

但是,当我在 Xcode 中使用 General 复选框时,Info.plist文件说相反:

screenshots from Xcode

上述信息清楚地表明了矛盾。我的问题是:我是否遗漏了什么,或者我应该把它当作工具链/文档/API 中长期存在的东西?

你问,当应用程序在模拟器或设备上运行时实际发生了什么?以下是我收集的数据的一个子集。为了您的阅读方便,我强调了术语 LEFT 和 RIGHT。你的大脑可能仍然会爆炸。

要跟踪三个数量:

  • Xcode/plist 所说的
  • 模拟器菜单项说什么[或设备方向是什么]
  • API 调用的内容UIDevice.current.orientation说。

  • 当“常规”复选框仅设置为“横向左侧” :
  • Info.plist文件显示“横向(左主页按钮)”[即不同意文档]
  • 模拟器启动
  • 屏幕图像朝上 [即正确]
  • 检查硬件>方向菜单项“横向”[即不同意 Xcode/plist]
  • 左侧带有主页按钮[即菜单项和主页按钮位置之间的关系与文档一致]
  • UIDevice.current.orientation == .landscapeRIGHT [IE。不同意 Xcode,但同意模拟器菜单]
  • 选择菜单项 Hardware > Orientation > Landscape LEFT
  • 将屏幕图像倒置[正确行为:没有图像自动旋转]
  • 将主页按钮放在右侧 [当然]
  • UIDevice.current.orientation == .landscapeLEFT [与文档一致/与 Xcode/plist 相反]
  • 使用左侧的主页按钮启动 iPhone:
  • 正确显示屏幕图像
  • UIDevice.current.orientation == .landscapeRIGHT [与文档一致/与 Xcode/plist 相反]
  • 将手机旋转 180°
  • 将主页按钮放在右侧 [当然]
  • UIDevice.current.orientation == .landscapeRIGHT [IE。它与应用程序的想法一致,而不是与设备的物理方向一致]
  • iPad 的行为与 iPhone 相同
  • 最佳答案

    我认为这主要是 Xcode UI 和 info.plist 之间的矛盾问题。 Xcode UI 显示“ 设备 方向”,而 info.plist 谈到“支持的 接口(interface) 方向”。但是我们知道这两者是不同的东西,所以肯定有问题。

    假设在两者之间,info.plist 获胜,那么这些字段(对于 iPhone 和 iPad)用于指定 Supported 接口(interface)方向。 IE。您也可以通过 supportedInterfaceOrientations 在特定 View Controller 中覆盖相同的选项.

    相反,引用的文档页面大约是 设备 方向,有自己的定义是什么是landscapeLeft:主页按钮在右边。

    现在,查看 接口(interface)定向面具docs ,并没有关于什么是 LandscapeLeft 的真正细节,但旧的 Xcode UI 屏幕截图显示主页按钮在左侧。参见例如来自 this SO thread :

    enter image description here

    编辑 : 接口(interface)方向doc page而是详细介绍了landscapeLeft:左侧的主页按钮,如旧屏幕截图所示。

    结论

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

  • Xcode UI/info.plist 是关于支持的界面方向,它有自己的横向左/右定义
  • 设备方向与横向左/右的定义相反
  • 关于iOS横向左vs右vs错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149745/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com