码迷,mamicode.com
首页 > 移动开发 > 详细

ios 根据文字数量计算UILabel高度

时间:2016-01-11 23:58:16      阅读:400      评论:0      收藏:0      [点我收藏+]

标签:

     以前封装过多个关于实现此功能的方法,虽然都实现了效果,但代码和实现思路都相对复杂很多,而且并不比我下面要说的这个方法好,这个也是我今天突发奇想来的,测量一下字体的宽度,然后根据这个点来计算 UILabel高度。这里我使用的FontSize是13,我测出它的高度、宽度都是15像素,如果你使用其他号字体,需要自己从新测下字体宽度、高度,下面贴出代码。

一、实现代码

    //申明时的label的高度可以随便设置,因为之后计算出高度后还需要从设置一次
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 0, DEVICE_Width-20, 150)];
    label.text = @"《蛮荒记》的故事展开:大荒586年, 神农化羽,神帝之位悬空,引发金、木、水、火、土五族大战。神农传人拓跋野与义弟蚩尤联合对抗侵略者,双军交锋,大地却在战场中央裂开,封印太古凶魔的皮母地丘重现人间,混沌一出,天下将亡。这版概念海报一经曝光,立刻引发不少网友围观。 2015年的影视圈,掀起了网络文学改编IP的热潮:根据《盗墓笔记》、《鬼吹灯》等热门IP改编的多部电视剧、电影相继上映。2016年伊始,阿里影业也放“大招”,正式宣布《蛮荒记》这一IP也将搬上大银幕。  据《蛮荒记》项目制片人夏天尘介绍,电影《蛮荒记》将是一个类似魔兽世界“艾泽拉斯大陆”的东方上古世界观,“如果一定要做直观的类比,艾泽拉斯大陆讲巨魔、精灵、土灵、矮人、侏儒,我们讲天下诸帝、五大圣女、大荒十神、大荒十大妖女,以《山海经》为蓝本,故事情节取材并贯通华夏传说,将全新的上古世界搬上大银幕。电影的视觉审美和世界观塑造都将打破中国人传统认知,让观众感觉熟悉却又颠覆。";
  
    label.backgroundColor = [UIColor redColor];
    label.textColor = [UIColor whiteColor];
    label.textAlignment = NSTextAlignmentCenter;
    label.lineBreakMode = NSLineBreakByWordWrapping;
    label.font=[UIFont systemFontOfSize:13];
    //下面/15这里的15就是13号字体的宽度,这里是用label的宽度/15(单个字体的宽度)计算出这个label的宽度每行能放多少个汉字
    int WordCount=label.frame.size.width/15;
    //下面是使用字体的长度(就是字体的个数)/上面计算出的每行存放字体的个数,算出一共有多少行
    CGFloat heightCount= label.text.length/WordCount;
    //heightCount*15  下面我们就是通过上一步计算出的 行数*字体的高度,计算出label最终的展示高度
    [label setFrame:CGRectMake(label.frame.origin.x, 0, label.frame.size.width,heightCount*15 )];
    label.numberOfLines = 0;
     [self addSubview:label];

二、下面是效果截图(因为iphone4和IPHONE5的宽度是一样的所以效果没出入)

          技术分享技术分享

       技术分享

技术分享

 

ios 根据文字数量计算UILabel高度

标签:

原文地址:http://www.cnblogs.com/xiaoliao/p/5122905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!