在一些列表中,可能需要根據文字的多少來動態調整Cell的高度,這就需要動態計算字符串的區域大小,IOS7以後可以使用以下方法
/**
@method 得到指定字符串的區域大小
@param str 要計算的字符串
@param font 字體的大小
@param width 限制字符串的顯示寬度
@result CGSize 計算後區域大小
*/
+ (CGSize)getSizeWithString:(NSString *)str withFont:(UIFont *)font withWidth:(CGFloat)width{
NSStringDrawingOptions opts = NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading;
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
[style setLineBreakMode:NSLineBreakByCharWrapping];
NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:style};
return [str boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:opts attributes:dic context:nil].size;
}