根据文字内容和设定maxSize计算文字的width、height
1.调用的方法
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context
2.方法的解释
2.1第一需要一个size 这个size是规定文字width,height的最大值
CGSize maxSize = CGSizeMake(200, MAXFLOAT);
在这段代码中maxSize的宽度规定为200,高度为最大,这样做的原理是系统会根据宽度和文字的大小计算这段文字的高度,然后返回。如果设定的宽度高度小于应有的宽度和高度那么返回的是你设定的宽度高度。
2.2 options
一般设为:NSStringDrawingUsesLineFragmentOrigin,这样结果计算准确。
2.3 attributes
#define font[UIFont systemFontOfSize:17]
NSDictionary *attrs = @{NSFontAttributeName:font};
2.4 context
设置为nil
3.一般讲这个较长的方法封装便于调用
/**根据文字计算文字的size*/
- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize{
NSDictionary *attrs = @{NSFontAttributeName:font};
return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
}