如何将CGSize转换为实际公制尺寸并计算对应公制距离
CGSize转实际公制尺寸的计算方法
CGSize的单位是iOS系统的逻辑点(point),和物理尺寸没有固定对应关系,必须结合当前设备的物理显示参数才能完成换算。
通用换算逻辑
你需要先获取两个核心参数:
- 当前设备的
scale缩放因子:即1个逻辑点对应的像素数量,可通过UIScreen.main.scale直接读取 - 当前设备的物理像素PPI(每英寸包含的像素数):该参数为硬件固定值,苹果未提供公开API读取,可通过官方硬件参数表查询
- 当前设备的
换算公式:
物理尺寸(毫米)= 点数值 × 25.4 ×scale÷ 设备PPI
25.4为固定换算系数:1英寸=25.4毫米
11英寸iPad设备的计算示例
11英寸iPad的固定硬件参数:
- 物理像素PPI:264
- 缩放因子
scale:2
代入CGSize(width:300,height:300)计算:
单维度物理尺寸 = 300 × 25.4 × 2 ÷ 264 ≈ 57.7 毫米
最终得到的实际物理尺寸为 57.7mm × 57.7mm
注意事项
- 该换算仅适用于屏幕显示场景,若用于打印、导出图片等场景,需替换为对应介质的PPI参数
- 不同设备的PPI和scale参数不同,不可直接套用iPad的换算系数到其他设备,比如iPhone的PPI多为326、460等,换算结果会有明显差异
- 若要在代码中实现动态换算,需要提前维护各型号设备对应的PPI对照表
内容的提问来源于stack exchange,提问作者Ahmed Abdulkareem
相关产品推荐
相关产品推荐

