计算字体的高度:
float fontHeight(float fontNumber)
{
CGRect rect = [@"字" boundingRectWithSize:CGSizeMake(100, 100) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fontNumber]} context:nil];
return ceilf(rect.size.height);
}
计算字体的宽度
float fontWidth(CGFloat fontNumber)
{
CGRect rect = [@"字" boundingRectWithSize:CGSizeMake(100, 100) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fontNumber]} context:nil];
return ceilf(rect.size.width);
}
计算字符串的高度(不限制最大行数)
float stringHeight(CGFloat width, CGFloat fontNumber ,NSString *string)
{
if (!string || string.length == 0)
{
return 0.0f;
}
CGRect rect = [string boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fontNumber]} context:nil];
return ceilf(rect.size.height)+1;
}
计算字符串的高度(限制最大行数)
float stringHeightWithMaxRow(CGFloat width, CGFloat fontNumber ,NSString *string ,int maxRow)
{
if (!string || string.length == 0)
{
return 0.0f;
}
CGRect rect = [string boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fontNumber]} context:nil];
CGFloat height = ceilf(rect.size.height)+1;
CGFloat maxHeight = maxRow * fontHeight(fontNumber);
if(height > maxHeight)
{
height = maxRow * maxHeight;
}
return height;
}