一,中文字号VS英文字号(磅)VS像素值的对应关系:
八号=5磅(5pt) ==(5/72)*96=6.67 =6px
七号=5.5磅==(5.5/72)*96=7.3 =7px
小六=6.5磅==(6.5/72)*96=8.67 =8px
六号=7.5磅==(7.5/72)*96=10px
小五=9磅==(9/72)*96=12px
五号=10.5磅==(10.5/72)*96=14px
小四=12磅==(12/72)*96=16px
四号=14磅==(14/72)*96=18.67 =18px
小三=15磅==(15/72)*96=20px
三号=16磅==(16/72)*96=21.3 =21px
小二=18磅==(18/72)*96=24px
二号=22磅==(22/72)*96=29.3 =29px
小一=24磅==(24/72)*96=32px
一号=26磅==(26/72)*96=34.67 =34px
小初=36磅==(36/72)*96=48px
初号=42磅==(42/72)*96=56px
二,UILabel不同字体对应的高度:
字体大小 | 高度 |
10 | 12 |
11 | 13+1/3 |
12 | 14+1/3 |
13 | 15+2/3 |
14 | 17 |
15 | 18 |
16 | 19+1/3 |
17 | 20+1/3 |
18 | 21+2/3 |
19 | 23 |
20 | 24 |
21 | 25+1/3 |
22 | 26+1/3 |
23 | 27+2/3 |
24 | 28+2/3 |
25 | 30 |
26 | 31+1/3 |
27 | 32+1/3 |
28 | 33+2/3 |
29 | 34+2/3 |
三,UILabel同一字体对应的宽度:
UILabel对象的文字宽度是由文字的font属性和文字个数确定的,而且中文、英文、数字的宽度计算还不一样,我认为的一个原因是iOS默认的字体中,中文是等宽字体,而英文和数字并不是等宽字体。
- 1,中文
- 由于等宽,所以很好计算,包括全月角标点符号也是可以这么计算的,就是:每个中文文字的宽度* 文字个数。文字个数就很好确定了,但每个中文文字的宽度是怎样确定的呢。通过一个小测试可知,中文文字的宽度是由UILabel的font属性确定的,font属性设置了多大号的字体,中文问题宽度就为多大号,即两者呈线性关系(PS:这个关系的前提是使用系统默认的字体。此外,若没有显式设置font属性的话,UILabel默认的字体大小为17),如:
label.font = [UIFont systemFontOfSize:12]; // 每个中文字宽度就为12
label.font = [UIFont systemFontOfSize:17]; // 系统默认字体大小,每个中文文字宽度为17
label.font = [UIFont systemFontOfSize:20]; // 每个中文文字宽度为20
- 2,数字
- 数字在系统默认字体内就不是等宽的了,所以宽度也会随着数字的不同而不同,下面是字体大小为系统默认字体大小(即17)的数字宽度表:
数字 | 宽度 |
0 | 10+1/3 |
1 | 7+1/3 |
2 | 10 |
3 | 10+1/3 |
4 | 10+2/3 |
5 | 10+1/3 |
6 | 10+2/3 |
7 | 9+1/3 |
8 | 10+2/3 |
9 | 10+2/3 |
- 3,英文
- 英文在系统默认字体中也是不等宽的,所以宽度也是会随着字母的不同而不同,下面是字体大小为系统默认字体大小(即17)的数字宽度表:
小写字母 | 宽度 | 大写字母 | 宽度 |
a | 9 | A | 11+1/3 |
b | 10+1/3 | B | 11 |
c | 9+1/3 | C | 12 |
d | 10+1/3 | D | 12 |
e | 9+1/3 | E | 10 |
f | 6 | F | 9+2/3 |
g | 10 | G | 12+1/3 |
h | 10 | H | 12+1/3 |
i | 4 | I | 4+1/3 |
j | 4 | J | 9 |
k | 9 | K | 11 |
l | 4 | L | 9+1/3 |
m | 14+2/3 | M | 14+2/3 |
n | 9+2/3 | N | 12+1/3 |
o | 9+2/3 | O | 13 |
p | 10 | P | 10+2/3 |
q | 10 | Q | 13 |
r | 6+1/3 | R | 11 |
s | 8+2/3 | S | 10+2/3 |
t | 6 | T | 10+2/3 |
u | 9+2/3 | U | 12+1/3 |
v | 9 | V | 11+1/3 |
w | 13 | W | 16+1/3 |
x | 8+2/3 | X | 11+1/3 |
y | 9 | Y | 11 |
z | 9 | Z | 11 |