44 像素的宽度是否等同于所有设备的相同物理尺寸?
Does a width of 44 pixels equate to the same physical size for all devices?
我的工作基于 iPhone 6 的屏幕尺寸,即 1136x750 像素,326 ppi。我更关心按钮的物理尺寸(出于某种原因)而不是它们的数字尺寸。
如果一个按钮在 iPhone 6 上的宽度为 44 像素且物理宽度为 0.2 英寸,在 iPhone 6 Plus 上具有相同的物理宽度,即 401 ppi?
如果不是,这不是应该违反 Apple 的准则吗?他们最初测试的最小宽度是 44 像素,但随着 ppi 的增加,相同的宽度在物理上减小了。
这是adjusted/scaled吗?
编辑:我觉得我很愚蠢,这一切都很明显。
编辑 2: 我最初担心的是,在整个屏幕上,一个 iPhone 6 总共可以有
T = 375.0 / 44.0 = 8 个按钮。
而iPhone 6 Plus总共可以有
T' = 540.0 / 44.0 = 12 个按钮,每个按钮在物理上更小。
解决此问题的方法是计算 iPhone 6 Plus 按钮的调整宽度,即 w' = 44.0 px * 401 ppi / 326 ppi = 54.0 像素。
因此,iPhone 6 Plus 上的每个按钮都应具有 54 像素的宽度,以便具有相同的物理尺寸。
我的想法正确吗?
你在数学上是对的,iOS 中的点数与物理尺寸无关。
physicalSize = points * scale / ppi
5.5 44*3/401 ≈ 0.33 英寸
4.7 44*2/326 ≈ 0.27 英寸
所以为了保证相同的物理尺寸,您需要为每个设备手动计算它,无论如何这不是最佳做法。
从上面的公式你得到这个:
points = physicalSize * ppi / scale
Swift函数:
func points(fromInches inches: CGFloat) -> CGFloat {
return inches * ppi / UIScreen.main.scale
}
var ppi: CGFloat {
//return device ppi
}
检查 this 关于以编程方式获取 ppi 的问题:
编辑:
我仍然建议从点的角度考虑,而不是物理屏幕尺寸。
我的工作基于 iPhone 6 的屏幕尺寸,即 1136x750 像素,326 ppi。我更关心按钮的物理尺寸(出于某种原因)而不是它们的数字尺寸。
如果一个按钮在 iPhone 6 上的宽度为 44 像素且物理宽度为 0.2 英寸,在 iPhone 6 Plus 上具有相同的物理宽度,即 401 ppi?
如果不是,这不是应该违反 Apple 的准则吗?他们最初测试的最小宽度是 44 像素,但随着 ppi 的增加,相同的宽度在物理上减小了。
这是adjusted/scaled吗?
编辑:我觉得我很愚蠢,这一切都很明显。
编辑 2: 我最初担心的是,在整个屏幕上,一个 iPhone 6 总共可以有
T = 375.0 / 44.0 = 8 个按钮。
而iPhone 6 Plus总共可以有
T' = 540.0 / 44.0 = 12 个按钮,每个按钮在物理上更小。
解决此问题的方法是计算 iPhone 6 Plus 按钮的调整宽度,即 w' = 44.0 px * 401 ppi / 326 ppi = 54.0 像素。
因此,iPhone 6 Plus 上的每个按钮都应具有 54 像素的宽度,以便具有相同的物理尺寸。
我的想法正确吗?
你在数学上是对的,iOS 中的点数与物理尺寸无关。
physicalSize = points * scale / ppi
5.5 44*3/401 ≈ 0.33 英寸
4.7 44*2/326 ≈ 0.27 英寸
所以为了保证相同的物理尺寸,您需要为每个设备手动计算它,无论如何这不是最佳做法。
从上面的公式你得到这个:
points = physicalSize * ppi / scale
Swift函数:
func points(fromInches inches: CGFloat) -> CGFloat {
return inches * ppi / UIScreen.main.scale
}
var ppi: CGFloat {
//return device ppi
}
检查 this 关于以编程方式获取 ppi 的问题:
编辑:
我仍然建议从点的角度考虑,而不是物理屏幕尺寸。