You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

适配多机型iOS项目屏幕点尺寸异常,咨询LaunchImage分辨率要求

问题分析与解决方案

Hey there, let's tackle your issue step by step!

为什么你获取的屏幕点尺寸不符合预期?

核心原因是你的应用可能在兼容模式下运行——当iOS检测到应用没有适配当前设备的启动资源(LaunchImage 或 Launch Screen)时,它会自动将应用缩放到旧设备的尺寸(比如Retina 4的320x568),导致[[UIScreen mainScreen] bounds]返回的是兼容模式下的尺寸,而非设备原生的点尺寸。

虽然你提到已经设置了Retina 4.7和5.5的LaunchImage,但可能存在配置遗漏或错误,导致系统没有识别到这些适配资源。

4.7寸和5.5寸LaunchImage的分辨率要求

是的,这两类设备的LaunchImage有明确的分辨率要求,对应关系如下:

  • 4.7寸设备(iPhone 6/6s/7/8):
    • 分辨率:750x1334(@2x),对应原生点尺寸375x667
  • 5.5寸设备(iPhone 6 Plus/6s Plus/7 Plus/8 Plus):
    • 分辨率:1242x2208(@3x),对应原生点尺寸414x736

另外补充:如果你的项目还要适配iPhone X及以后的设备,也需要添加对应尺寸的LaunchImage(比如iPhone X的1125x2436 @3x),否则这些设备也会进入兼容模式。

解决屏幕尺寸获取错误的步骤

  1. 检查LaunchImage配置完整性
    打开你的Image.xcassets,确认LaunchImage包含所有需要的设备类型:

    • Retina 4(640x1136 @2x):对应iPhone 5/5s/5c
    • Retina 4.7(750x1334 @2x):对应iPhone 6/7/8
    • Retina 5.5(1242x2208 @3x):对应iPhone 6+/7+/8+
    • iPhone X及以后的对应尺寸:比如iPhone X的1125x2436 @3x,iPhone 11的828x1792 @2x等
  2. 推荐使用Launch Screen替代LaunchImage
    维护多套LaunchImage很繁琐,更高效的方式是使用Launch Screen.storyboard:

    • 在项目的General设置页,找到Launch Screen File选项,选择对应的storyboard文件(如果没有可以新建一个)
    • Launch Screen是自适应的,系统会自动适配所有设备的屏幕尺寸,应用会以原生尺寸运行,此时[[UIScreen mainScreen] bounds]就能返回正确的点尺寸
  3. 清理项目缓存并重新运行
    有时候Xcode的缓存会导致配置不生效,执行Product > Clean Build Folder(快捷键:Cmd+Shift+Option+K),然后重新编译运行项目。

内容的提问来源于stack exchange,提问作者arachide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:44:12