Xcode8之后label只适应高度问题

bug天天有,今天又遇到一个令我头疼不已的bug,接手别人的项目,发现传过来的字符串在同一个label上,有的能自动换行,有的不能。着实费了一番手脚;

11.png

ABCD四个选项都用的是同一个label,传过来的字符串有的能换行,有的不能,打印高度,C选项的高度已经变了,到了换行的高度,但是字符串却没有换行,感觉就好比是一个父亲生了两个儿子,其中一个儿子不是亲生的一样。


E4F95E94DA7AFB56C7FD0BD452957BF8.jpg

看打印的高度和渲染的高度不一样,,下面是代码

    self.textLabel.text = _option;
    NSLog(@"self.textLabel.text----%@",_option);
    CGFloat padding = [[LEPreferenceService sharedService] paddingSize];
    CGRect screenRect = [UIScreen mainScreen].bounds;
    CGFloat screenWidth = screenRect.size.width;
    CGFloat labelWidth = screenWidth - padding*2.0 - self.textLabelLeadingConstraint.constant - self.textLabelTrailingConstraint.constant;
    CGRect labelRect = [self.textLabel.text boundingRectWithSize:CGSizeMake(labelWidth, CGFLOAT_MAX)
                                                              options:NSStringDrawingUsesLineFragmentOrigin
                                                           attributes:@{NSFontAttributeName:self.textLabel.font} context:nil];
    
    CGFloat labelHeight = labelRect.size.height;
    
    self.textLabelHeightConstraint.constant = labelHeight;
    NSLog(@"labelHeight----%f",labelHeight);

如果把labelHeight增加1的高度,问题就解决了,我查了资料,网上说是Xcode8之后label对于文字计算出现了变化,网友给的建议是增加下面两句代码:

//    self.textLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
//    self.textLabel.adjustsFontForContentSizeCategory = YES;

我尝试了一下,确实能解决本界面的bug,但是另外一个界面还是没有换行(两个界面都是用的同一个label),后来我增加了下面一句代码:

self.textLabel.adjustsFontSizeToFitWidth = YES;

发现所有的问题都解决了。
不过到现在还是没弄懂,为啥用的是同一个label,都是同一个计算方法,传过来的字符串有的能换行有的却不能换行呢?如果有哪个朋友也遇到这个问题,希望能发表一下自己的见解,大家交流交流。
期待...

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,907评论 25 709
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 10,249评论 1 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,805评论 19 139
  • 小怪怪简笔画
    帆yyt阅读 1,477评论 2 0
  • 当我想开始长篇大论的写一些文字的时候往往因为词穷会有好多想表达的情感表达不出来,这真是我从小不爱学习的后果吧,近几...
    银叶菊阅读 1,859评论 0 0

友情链接更多精彩内容