boundingRectWithSize计算不准确 显示不全 问题的分析与解决

Posted 茉莲晨曦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了boundingRectWithSize计算不准确 显示不全 问题的分析与解决相关的知识,希望对你有一定的参考价值。

最近项目中,用boundingRectWithSize计算的文本高度显示不全

原因一般有以下几点:

1、labelfont设置的和计算时候设置的不一致,尤其是xib 设置的时候;

2、有可能是计算出的高度是CGFloat的类型,在设置UILabelcell高度的时候,由于四舍五入导致有一点点的误差。

解决办法:

1、记得统一设置成一致的,xib的可以在awakeFromNib中重新设置一遍

2、在保证1设置没问题之后,你会发现依然不行,😄,此时就是第二种原因导致的了,可以这样:计算出的高度进行向上取整 再+1(如果不放心可以再加多一些像素) ,保证UILabel能够全部显示。

向上取整:float ceilf(float);    double ceil(double);

向下取整:float floorf(float);   double floor(double);

四舍五入:float roundf(float);  double round(double);

以上是关于boundingRectWithSize计算不准确 显示不全 问题的分析与解决的主要内容,如果未能解决你的问题,请参考以下文章

boundingRectWithSize 为多行标签返回错误的高度值

boundingRectWithSize 有时会返回大约 1 行高的高度

ios7 - boundingRectWithSize:boundingSize 不返回所需的标签高度

为啥在 boundingRectWithSize 处崩溃此代码?

调用 NSAttributedString.boundingRectWithSize 时应用程序崩溃

boundingRectWithSize:options:attributes:context用法