美文网首页
UILabel的单行显示不满换行

UILabel的单行显示不满换行

作者: Hanser0503 | 来源:发表于2019-10-08 11:12 被阅读0次

    前言

    最近开发中富文本、图文混排用的比较多,发现了一个小问题。UILabel在文字布局上容易出现一行不显示满就换行的情况。查了半天资料终于找到了解决方法。

    未做任何处理的情况

       UILabel *label = UILabel.new;
        label.backgroundColor = [UIColor blueColor];
        label.font = [UIFont boldSystemFontOfSize:13];
        label.numberOfLines = 2;
        label.textColor = [UIColor whiteColor];
        label.text = @"Azazie Dora Dora JDK";
        CGSize size = [label sizeThatFits:CGSizeMake(120, CGFLOAT_MAX)];
        label.frame  = CGRectMake(0, 100, 120, size.height);
        [self.view addSubview:label];
    

    效果图:


    nohandle.jpg

    可以看到,第一行还有很多空隙,但是第三个单词就不显示在第一行了。

    处理之后

     [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"NSAllowsDefaultLineBreakStrategy"];
     [[NSUserDefaults standardUserDefaults] synchronize];
    

    通过NSUserDefaults设置NSAllowsDefaultLineBreakStrategy属性为No,系统就不会做适配了。

    效果图:


    handle.jpg

    还有种比较笨的方法,就是把UILabel换成UITextView,但是成本太高了。

    相关文章

      网友评论

          本文标题:UILabel的单行显示不满换行

          本文链接:https://www.haomeiwen.com/subject/mxbqyctx.html