我的项目目标是iOS-11及更高版本。它具有适当尺寸的XR和XS Max正确的启动图像资产。在模拟器上,我的应用程序可以在XR和XS Max上正常运行。
但是,用户报告了真实设备上的UI问题。经过一番研究,在实际设备上看起来像这样
[UIScreen mainScreen].nativeBounds.size
返回正确的值。但是似乎设备本身认为它具有iPhone X屏幕尺寸(例如当我不使用正确的启动屏幕图像时)。在我看来,它返回错误的值
[UIScreen mainScreen].bounds.size
我认为这返回的值不是iPhone XR,而是iPhone X。
有人也遇到过这样的问题吗?
答案 0 :(得分:1)
iPhone XR在(虚拟)点上使用的尺寸与iPhone X或iPhone XS所用的尺寸不同。它使用与新iPhone XS Max相同的点尺寸,但仅使用@2x
而不是@3x
进行渲染,就像Max一样(每英寸密度较低的像素)。您可以了解有关每种iPhone型号here的屏幕尺寸,点,渲染尺寸等的更多信息。
在XCAsets中缺少启动图像的模板也会影响新一代的iPad,例如新的iPad Pro 11“与其他iPad具有的标准3/4宽高比略有不同。深入研究丢失的模板问题使我从2015年开始radar post来了解丢失的iPad Pro App图标和启动图像模板,其中评论指出:
[...] and Developer relations reported in a radar comment that they no longer support launch images and will not be adding the iPad pro launch image size to asset catalogs.
Apple似乎不鼓励在XCAssets中使用启动映像,并建议改为使用Launch Screen.storyboard
。根据使用的设备或模拟器,它将“自动调整大小”为正确的尺寸(以及UIScreen.main.bounds
和UIScreen.main.nativeBounds
的输出)。
答案 1 :(得分:0)
我遇到了同样的问题,并且找到了原因。您可以检查资产中的 LaunchImage 。 iPhone XR是否有图像?如果您没有 iPhone XR LaunchImage ,则XR的屏幕尺寸将与iPhone X一起计算。因此为XR制作LaunchImage 。 希望这会有所帮助。
答案 2 :(得分:0)
就我而言,问题出在特定的用户设备设置上。 设置->显示和亮度->显示变焦开关打开。 这会导致返回错误
[UIScreen mainScreen].bounds.size
重视运行时间