label 根据内容text确定控件的大小 分为单行/多行文字

来源:互联网 发布:python网络爬虫是什么 编辑:程序博客网 时间:2024/05/16 08:55

如果 label 文字只有一行

UILabel *label1=[[UILabelalloc]initWithFrame:CGRectZero];

       label1.text=@"";//label 文字较少 只用一行就能显示

       label1.font=SYSTEMFONT(15);

       label1.textColor=RGBCOLOR(77,187,254);

       CGSize size1=[label1.text sizeWithAttributes:@{NSFontAttributeName:label1.font}];

       label1.frame=CGRectMake(0,0, size1.width, size1.height);


如果是多行文字,

UILabel *label2=[[UILabelalloc]initWithFrame:CGRectZero];

       label2.text=@"比较多的文字";

       label2.font=SYSTEMFONT(12);

       label2.textColor=RGBCOLOR(65,65,65);

       label2.numberOfLines=0;   //设置行数

        //   CGSize size2=[label2.textsizeWithAttributes:@{NSFontAttributeName:label2.font}];

        CGSize size2 = [label2.text boundingRectWithSize:CGSizeMake(SCREEN_WIDTH-40,SCREEN_HEIGHT)options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:12]}context:nil].size;

//boundingRectWithSize 根据 text 的大小font 设置显示范围  ??还没有弄清楚 cgsize 是什么作用

       label2.frame=CGRectMake(0,CGRectGetMaxY(label1.frame)+15,SCREEN_WIDTH-40,size2.height);



0 0
原创粉丝点击