• iOS UILabel文字自适应高度自适应


    第一步:创建UILabel对象,并设置一些基本设置

            UILabel *label = [[UILabel alloc] init];

            label.text = @"8月29日,在雅加达亚运会电子竞技表演赛英雄联盟项目决赛中,中国团队3-1击败韩国队获得冠军,这场来之不易的胜利占据了微博热搜,也刷屏了朋友圈!";

            label.textColor =RGBA(64, 64, 64, 1);

    第二步:进行一些关键参数设置

            label.numberOfLines = 0;  //这里选择零,意思是可以多行显示。如果为1,则只能显示一行,多出的文字会以...代替

            //lineBreakMode:设置标签文字过长时的显示方式。 
            //label.lineBreakMode = NSLineBreakByCharWrapping;    //以字符为显示单位显示,后面部分省略不显示。 
            //label.lineBreakMode = NSLineBreakByClipping;        //剪切与文本宽度相同的内容长度,后半部分被删除。 
            //label.lineBreakMode = NSLineBreakByTruncatingHead;    //前面部分文字以……方式省略,显示尾部文字内容。 
            //label.lineBreakMode = NSLineBreakByTruncatingMiddle;    //中间的内容以……方式省略,显示头尾的文字内容。 
            //label.lineBreakMode = NSLineBreakByTruncatingTail;    //结尾部分的内容以……方式省略,显示头的文字内容。 
            //label.lineBreakMode = NSLineBreakByWordWrapping;    //以单词为显示单位显示,后面部分省略不显示。

            label.lineBreakMode = NSLineBreakByTruncatingTail;//结尾部分的内容以……方式省略,显示头的文字内容。

            CGSize maximumLabelSize = CGSizeMake(100, 9999);//labelsize的最大值:这里宽度最大为100px,高度最大为9999px,文本超出宽度为100时会自动换行。

    //关键语句

            CGSize expectSize = [label sizeThatFits:maximumLabelSize];//这里会得到一个由label文本长度计算出来的一个宽高的CGSize结构体。

            //别忘了把frame给回label,如果用xib加了约束的话可以只改一个约束的值

            label.frame = CGRectMake(30, 30, expectSize.width, expectSize.height);

            label.font = [UIFont systemFontOfSize:15];

    到此基本就打工搞成了!

  • 相关阅读:
    Java实现 洛谷 P1009 阶乘之和
    Java实现 洛谷 P1009 阶乘之和
    mysql8.0 安装 修改密码 允许远程连接
    Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/vm10-0-0-19
    优秀c++开源项目集合
    可能是国内最火的开源项目 —— C/C++ 篇
    CodeBlocks环境搭建及创建第一个C++程序
    手动安装MySQL8.0
    【Linux】CentOS 7.4 安装 MySQL 8.0.12 解压版
    CentOS7下安装mysql5.7
  • 原文地址:https://www.cnblogs.com/Ewenblog/p/11323182.html
Copyright © 2020-2023  润新知