计算label的高度(尽量使用自动布局AutoLayout)
第一种:更方便的方法:
[label sizeToFit];//自动根据x/y以及宽度适应高度,直接取frame使用即可。
第二种:计算存在误差,建议使用第一种方法。
//textString:传入字符串
//defautWidth:默认宽度
//defautHeight:默认高度
//fontSize:字号大小
+(CGFloat)getLabelHeight:(NSString *)textString defautWidth:(float)defautWidth defautHeight:(float)defautHeight fontSize:(int)fontSize
{
CGSize size = CGSizeMake(defautWidth,defautHeight);
CGSize labelsize;
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_7_0
NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:fontSize] ,NSFontAttributeName,nil];
labelsize = [textString boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
#else
labelsize = [textString sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByWordWrapping];
#endif
return labelsize.height;
}
最新更改(去除iOS7的判断,ios7 以前一般不用了)
- (CGFloat)getLabelHeight:(NSString *)textString defautWidth:(float)defautWidth defautHeight:(float)defautHeight fontSize:(int)fontSize
{
CGSize size = CGSizeMake(defautWidth,defautHeight);
CGRect labelRect;
NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]};
labelRect = [textString boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];
return labelRect.size.height;
}
网友评论