计算多行文字,高度展示不对的问题

今天是周五,上班时候偷了点懒,没有去学习别人的博客,所以先写一下昨天遇到的小问题,在计算文字高度正确时,展示的UILab出现了高度不够的问题。


首先如题目上所说我在项目中计算了文字代码如下:

    CGRect titleRect = [@"款进口大众尚酷款进口大众尚酷款进口大众尚酷款进阿斯顿" boundingRectWithSize:CGSizeMake(300, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14.]} context:nil];
    UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, titleRect.size.width, titleRect.size.height)];
    titleLab.numberOfLines = 0;
    titleLab.backgroundColor = [UIColor redColor];
    titleLab.font = [UIFont systemFontOfSize:14.];
    titleLab.text = @"款进口大众尚酷款进口大众尚酷款进口大众尚酷款进阿斯顿";
    titleLab.textColor = [UIcolors colorWithHexValue:0x3e3a39 alpha:1.];
    [self addSubview:titleLab];

得到的是一个CGRect,来供我给我的UILab设置大小,但是因为文字比较多(我的行数已经设置成多行),效果则变成了这样:



原因:

通过打断点观察,titleRect的矩形大小并没有问题,UILab的Frame也没有任何问题,那么哪里为什么会出现,展示文字时,矩形空间不够的情况呢?


想法:

经过后期观察我们发现,单行时如此操作不会出现类似的问题,但是多行时会出现,主要是由于“计算文字大小”这个算法木有计算文字在对象中间隙的问题,所以展示时文字多行本身会自动加上间隙,然而计算时总是少算一行。


解决:

之后发现了,一个非常简单的办法,就是给UILab高度加1,只用加1就好,再多几行也不会有事了。

    UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, titleRect.size.width, titleRect.size.height+1)];


改正后的效果:



感谢观看, 学以致用更感谢!




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值