应该有很多人计算不准吧。网上也有给出很多公式,这里给出一个目前我认为最好理解的解释及公式。这里有知乎上面的一个解答:
UI 设计师提供 iOS 字体和长度应当用什么单位? - 梁海的回答
个人的进一步理解
设计师一般会说,这里的字体是32像素,如果你做的项目足够多,合作的UI设计师不同时,可能32像素以你的理解,转换出来后的大小,这些设计师可能会不太喜欢这个效果。其实这个表述是不准的。
根据刚刚贴子的理解,我们可以发现:设计师描述的字体大小其实是相对的。
这个大小与设计师新建文档时填写的分辨率(PPI)有关系,一般设计师会以72 PPI 来设计,而有的设计师是以144来设计。
同时PS的文字单位又有PT和PX之分。所以,一般与初合作的UI设计师交流时,最好先定义好设计稿是在哪个分辨率下的像素还是点大小。
下面给出公式:
IOS开发大小(pt) = 设计稿PPI / 你设定的PPI * PT
同时,一般IOS开发,我们是以高清屏来开发的,所以我们设定的PPI就是 144 。所以公式就是这样的
IOS开发大小(pt) = 设计稿PPI / 144 * PT
在PS设计中,72PPI的分辨率下,PT和PX是 1:1 。所以我们的公式就可以得出两个。
1、PT公式
IOS开发大小(pt) = 设计稿PPI / 144 * PT
2、PX公式
IOS开发大小(pt) = 设计稿PPI / 144 *((设计稿PPI / 72) * PX)
3、运用
// 设计师说大小是 72 ppi 下的 28 pt ,我们套用公式一
CGFloat fontSize = 72/144*28; // 可以得出开发大小是 14 pt
// 设计师说大小是 72 ppi 下的 28 px ,套用公式二
// 因为72分辨率下px:pt 是1:1的关系,所以我们也可以直接使用公式一
fontSize = 72/144*((72/72)*28); // 可以得出开发大小是 14 pt
// 设计师说大小是 144 ppi 下的 14 pt ,套用公式一
fontSize = 144/144*14; // 可以得出开发大小是 14 pt
// 设计师说大小是 144 ppi 下的 28 px ,套用公式二
fontSize = 144/144*((144/72)*28); // 可以得出开发大小是 56 pt