加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

iOS-UILabel文本的宽度和高度计算

(2019-07-09 13:45:28)
分类: 2018海送
在iOS开发中我们都会遇到界面搭建中UILabel文本的宽度和高度的不可预估带来的适配或者约束中的麻烦。

1.单行

计算单行文本较为简单,我尽量写的详细一些。

    //1.创建UILabel但不要设置frame
    UILabel *text = [[UILabel alloc]init];
    
    //2.给字符串
    text.text = @"Hello World!";
    
    //3.设置UIFont
    text.font = [UIFont systemFontOfSize:14];
    
    //4.根据text的font和字符串自动算出size(重点)
    CGSize size = [text.text sizeWithAttributes:@{NSFontAttributeName:text.font}];
    
    //5.根据size设置frame
    text.frame = CGRectMake(100, 100, size.width, size.height);
 
    //设置背景让我们看一下大小效果
    text.backgroundColor = [UIColor grayColor];
运行效果:  

2.多行

计算多行文本就会比较麻烦了。

    //1.创建UILabel但不要设置frame
    UILabel *text = [[UILabel alloc]init];
    
    //2.给多行字符串
    text.text = @"Hello World!Hello World!Hello World!Hello World!Hello World!";
    
    //3.设置自动换行
    text.numberOfLines = 0;
    
    //4.设置UIFont
    text.font = [UIFont systemFontOfSize:14];
    
   
    CGSize size = [text.text boundingRectWithSize:CGSizeMake(200, MAXFLOAT)
                                          options:NSStringDrawingUsesLineFragmentOrigin
                                       attributes:@{NSFontAttributeName:text.font}
                                          context:nil].size;
    
    //6.根据size设置frame
    text.frame = CGRectMake(100, 100, size.width, size.height);
 
    //设置背景让我们看一下大小效果
    text.backgroundColor = [UIColor grayColor];

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有