1 static int size[] = {96, 72, 64, 48, 36, 24, 18, 14, 13, 12, 11, 10}; //这么多字体,从大到小挨个尝试
2 static int array_length = 12;
3
4 UIFont *font;
5
6 for(int i = 0; i < array_length; i++)
7 {
8 font = [font fontWithSize:size[i]];
9 //设定宽度,高度无限高
10 CGSize constraintSize = CGSizeMake(480.0f, MAXFLOAT);
11
12 //计算实际需要得视图大小
13 CGSize labelSize = [text sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
14
15 //因为宽度已经限定了,所以判断高度是否符合需求,如果不符合,继续找更小得字体,如果符合,跳出循环
16 if(labelSize.height <= 320.0f)
17 {
18 break;
19 }
20 }
21
22 label.font = font;
23 label.text = self.text;