通过计算的文本宽度,由于小数四舍五入引起的文字显示不全问题:

通过计算的文本宽度,若出现小数,而手机的屏幕有最低分辨率(BG_1PX (1.0f / [UIScreen mainScreen].scale)),标签的宽度只能大于文本实际的宽度才能正常显示,否则会出现显示不出来的问题。

解决办法是:发现计算的文本宽度带小数(小数点后全是零不算)就直接把计算出的宽度加1像素。

具体代码如:

    NSDictionary *attributes = @{NSFontAttributeName :font};     //字体属性,设置字体的font
CGSize maxSize = CGSizeMake(FULL_WIDTH, FULL_HEIGHT); //设置字符串的宽高
CGSize size = [maxTitle boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
CGFloat labelWidth = size.width;
if((labelWidth != ((NSInteger)labelWidth)))
{
labelWidth = labelWidth + 1.0;
}


出问题的运行数据如下:

通过计算的文本宽度,由于小数四舍五入引起的文字显示不全问题_宽高


通过计算的文本宽度,由于小数四舍五入引起的文字显示不全问题_四舍五入_02

出问题的效果如下:

通过计算的文本宽度,由于小数四舍五入引起的文字显示不全问题_宽高_03