当我们利用这个方法获取指定宽度,指定字体的高度时在机型与xib文件中的字体大小不同时会出现计算误差,这时候我们设置两个地方就能解决。
1.label的lineBreakMode = NSLineBreakByWordWrapping
2.直接调用这个方法即可
重点的参数是options,大家注意一下。
还有就是因为涉及到界面适配,所以难免出现小数,这时候采用四舍五入并且加1可以防止小数问题。
- (CGFloat)getLabelHeightWithText:(NSString *)text width:(CGFloat)width font: (UIFont *)font
{
CGRect rect = [text boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil];
CGFloat height = ceil(rect.size.height) + 1;
return height;
}