iOS 计算文本高度[填坑版]

很多时候我们在加载table的时候,需要计算文本高度,但是计算会有误差;


省略文字描述,直接eg:


str = @"这个文本有4个空格    ,宽度定义为320,sizeToFit,font14.场景:这段文字4行多2个字,因为这4个空格,我们计算只能得到3行的高度";

CGRect textRect = [str boundingRectWithSize:CGSizeMake(kScreenWidth, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14.f]} context:nil];

//当文本中 空格  刚好影响到换行的时候,计算高度会严重偏差,所以我们在计算的时候这样做:

添加NSString+Calculate方法,对你需要计算高度的文本进行处理,利用NSString的替换字符串方法(stringByReplacingOccurrencesOfString:@" " withString:@"k"),把文本中的空格替换成一个字母,然后再计算.

CGRect textRect = [[str calculateText] boundingRectWithSize:CGSizeMake(kScreenWidth,

MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin |

NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont

systemFontOfSize:14.f]} context:nil];

//[str calculateText] 是你自己写的类目方法;替换的字母有没有讲究我没去深入了解

最后一步:对文本计算的高度取整+1

CGFloat cellHeight = ceil(textRect.size.height) + 1;




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容