iPhone 点与物理尺寸的关系

The Ultimate Guide To iPhone Resolutions

最近思考设计稿一个字号显示在不同设备物理尺寸是否一致,即对于用户看到的大小是否一致?

因此从理论和实践两个方面对于三个尺寸 (4、4.7、5.5) 英寸的差异。

1. 理论:

参考资料:The Ultimate Guide To iPhone Resolutions https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

根据上图的计算每个点对应物理尺寸,公式为:

piexl / inch = (point * (render * downsmaping)) / inch 

inch / point = (render * downsmaping) / (piexl / inch)

每个点的大小 等于 每个点实际对应的像素数 除以 每英寸像素(PPI)

render downsmaping piexl / inch inch / point 20 * (inch / point)
4” 2 1 326 0.00613497 0.12269939
4.7” 2 1 326 0.00613497 0.12269939
5.5” 3 1/1.15 401 0.00650548 0.13010951

1.06039312336 = 0.00650548 / 0.00613497

结论:4” 和 4.7” 完全一致,5.5”同样点数要比其他的大,约为 1.06 倍。

2. 实践:

写了一个 Demo https://github.com/gewill/Demo/tree/PPI ,真机量了一下物理尺寸也和上面的结论一致。

/// 各种字号的文本
func drawLabel() {
var y: CGFloat = 40
for size in 13...24 {
let label = UILabel()
label.text = "Font size: \(size)- 壹拾贰亿拾陆 -@#¥ABCxyz"
label.font = UIFont.systemFont(ofSize: CGFloat(size))
label.backgroundColor = UIColor.green.withAlphaComponent(0.4)
y += CGFloat(size) + 20
label.frame = CGRect(x: 0, y: y, width: UIScreen.main.bounds.width, height: CGFloat(size))
self.view.addSubview(label)
}
}