计算label的Size方法
- sizeWithAttributes:方法 适用于不换行的情况,宽度不受限制的情况
/// 根据指定文本和字体计算尺寸- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font{ NSMutableDictionary *attrDict = [NSMutableDictionary dictionary]; attrDict[NSFontAttributeName] = font; return [text sizeWithAttributes:attrDict];}
- boundingRectWithSize:方法,适用于换行的情况,同时适用于不换行的情况,为了兼容两者,代码如下
/// 根据指定文本和字体计算尺寸- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font{ return [self sizeWithText:text font:font maxWidth:MAXFLOAT];}/// 根据指定文本,字体和最大宽度计算尺寸- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxWidth:(CGFloat)width{ NSMutableDictionary *attrDict = [NSMutableDictionary dictionary]; attrDict[NSFontAttributeName] = font; CGSize size = [text boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrDict context:nil].size; return size;}