获取字符串size
方法一:
- (CGSize)sizeWithString:(NSString *)string font:(UIFont *)strFont{
CGSize tempSize = [string sizeWithAttributes:@{NSFontAttributeName:strFont}];
return tempSize;
}
方法二:
- (CGSize)sizeWithString:(NSString *)string constraintSize:(CGSize)constraintSize font:(UIFont *)strFont{
NSDictionary *attributes = @{NSFontAttributeName:strFont};
NSInteger options = NSStringDrawingUsesFontLeading
| NSStringDrawingTruncatesLastVisibleLine
| NSStringDrawingUsesLineFragmentOrigin;
CGRect stringRect = [string boundingRectWithSize:constraintSize options:options attributes:attributes context:NULL];
return stringRect.size;
}
获取富文本高度
/**
* 计算富文本的高度
*/
- (CGFloat)getAttributedStringHeightWithText:(NSAttributedString *)attributedString andWidth:(CGFloat)width andFont:(UIFont *)font {
static UILabel *stringLabel = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{//生成一个同于计算文本高度的label
stringLabel = [[UILabel alloc] init];
stringLabel.numberOfLines = 0;
});
stringLabel.font = font;
stringLabel.attributedText = attributedString;
return [stringLabel sizeThatFits:CGSizeMake(width, MAXFLOAT)].height;
}