Firemonkey 应用程序中的完整 iPhone X 分辨率?

Full iPhone X resolution in Firemonkey app?

如果我尝试在 iPhone X 上 运行 一个简单的 iOS 应用程序(用 10.1 Berlin 编写),该应用程序无法使用完整的 iPhone X显示屏尺寸。可以为 Delphi/FMX 应用程序设置完整的 iPhone X 分辨率吗?

您需要根据此图表添加 iPhone X 所需的额外 2 张启动图像:

https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/launch-screen/

此外,您需要提供一个自定义 .info.plist,其中包括启动图像的条目(因为 IDE 不会为您做),即将其添加到UILaunchImages 键的数组节点:

        <dict>
            <key>UILaunchImageSize</key>
            <string>{375, 812}</string>
            <key>UILaunchImageName</key>
            <string>Default-812h</string>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>8.0</string>
            <key>UILaunchImageOrientation</key>
            <string>Portrait</string>
        </dict>
        <dict>
            <key>UILaunchImageSize</key>
            <string>{812, 375}</string>
            <key>UILaunchImageName</key>
            <string>Default-Landscape-812h</string>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>8.0</string>
            <key>UILaunchImageOrientation</key>
            <string>Landscape</string>
        </dict>

您需要将图像添加到项目部署中,并编辑每个图像的远程名称属性以与 .info.plist 中的条目对齐,例如:

等等,还有更多!您还需要根据 Pimmie 的其他答案考虑间距。您可以通过使仅在 iPhone X 上显示的布局与顶部、底部、左侧和右侧对齐来做到这一点,使用类似:

uses
  iOSapi.Helpers;

...

if TiOSHelper.MainScreen.bounds.size.height = 812 then
  // iPhoneX

还有一个问题 Delphi 为状态栏提供 "space",它可能不需要为 iPhone X 做(仍在解决这个问题)。

对我来说,这个程序适用于柏林和东京,但总而言之:不是微不足道的