在图生上处理字符的时候,需要得到字符串所占位置长度。这长度与字体相关。下面的方法判断200像素的长度内是否可以以最小字体为15号字体来显示字符串。str为你要显示的字符串。
UIFont *font = [UIFont fontWithName:@"DINNextLTPro-Bold" size:20];
UILabel *label = [[UILabel alloc] init];
label.lineBreakMode = UILineBreakModeCharacterWrap;
label.numberOfLines = 1;
label.font = font;
label.text = str;
label.frame = CGRectMake(0, 0, 0, CGFLOAT_MAX);
int i = 20;
for (i = 20; i > 15; i--) {
label.font = [label.font fontWithSize:i];
[label sizeToFit];
NSLog(@"font size = %d label size width = %f max size = %f", i, label.frame.size.width, 200.);
if (label.frame.size.width < 200.) {
break;
}
label.frame = CGRectMake(0, 0, 0, CGFLOAT_MAX);
}
[label release];
if (i <= 15) {
return NO;
}
return YES;