我有一个最近使用 Swift 构建的 iOS 应用程序,它设置为在横向模式下工作。
我收到过一些关于 iPhone 14(标准)上的不良显示结果的报告,现在我查看了他们的屏幕截图,我可以明白他们的意思,但无法在模拟器中复制问题。
如图所示,问题是我将“紫色区域”设置为 500,将粉色区域设置为覆盖屏幕的其余部分。在我的模拟器上,它按原样工作,看起来像第一张图片。
但是,在真实设备上,它看起来像第二张图像,但使用了更多的空间。
它似乎在所有其他设备上运行良好,但由于某种原因,无论我查看 Xcode 故事板还是模拟器,我都无法对标准 iPhone 14 获得相同的视图。
有人可以解释为什么我在一台设备上看到如此不同的结果吗?我尝试过谷歌搜索,但似乎没有任何答案可以回答这个问题。
iPhone 14 是具有可切换显示缩放设置的众多设备之一:
https://support.apple.com/guide/iphone/magnify-the-screen-iphd6804774e/ios
这会导致绝对测量(例如 500 像素)占据相当多的屏幕空间。如果您的目标是占据屏幕的特定“比例”,请使用自动布局乘数;不要依赖绝对数值大小。 (您无法在模拟器上模拟此行为,因为模拟器的“设置”中缺少此功能。但是,您可以通过模拟较小的设备(例如 iPhone 12 mini)来实现相同的虚拟屏幕尺寸。)