经常会用到UILabel、UITextView自适应大小,当然需要计算Label的text的文字所占size。

/**
* 格式字符串所占都size大小
*
* @param string 要计算的字符串
* @param font 字符串font
* @param constrainSize 字符串限制最大size
*
* @return 字符串所占的size
*/
+ (CGSize)getSizeWithString:(NSString *)string font:(UIFont *)font constrainedToSize:(CGSize)constrainSize{
CGSize size = CGSizeZero;
if (([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending)) {
CGRect rect = [string boundingRectWithSize:constrainSize//限制最大的宽度和高度
options:NSStringDrawingTruncatesLastVisibleLine
| NSStringDrawingUsesFontLeading
| NSStringDrawingUsesLineFragmentOrigin//采用换行模式
attributes:@{NSFontAttributeName : font}//传人的字体字典
context:nil];
size = rect.size;
}else{
size = [string sizeWithFont:font constrainedToSize:constrainSize lineBreakMode:NSLineBreakByWordWrapping];
}
return size;
}