+ (CGSize)calcStrSize:(NSString *)str font:(UIFont *)font width:(CGFloat)width;
{
if ([NSString isNilOrEmpty:str]) {
return CGSizeZero;
}
CGSize retSize;
if ([str respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) {
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
NSDictionary *attrDict = @{NSFontAttributeName: font,
NSParagraphStyleAttributeName : paragraphStyle};
retSize = [str boundingRectWithSize:(CGSize){width, MAXFLOAT}
options:NSStringDrawingUsesLineFragmentOrigin
attributes:attrDict
context:nil].size;
} else {
retSize = [str sizeWithFont:font constrainedToSize:CGSizeMake(width, MAXFLOAT)];
}
return retSize;
}