一,中文字号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 |