@property(nonatomic)UILabel *showLabel;

 // 计算文本所占高度,计算出来之后设置label的高度

// 第一个参数:字体大小,字体大小/样式影响计算字体的高度
 // 第二个参数:CGSize结构体,结构体中第一个参数表示宽度,宽度的设置影响计算文本的高度,很明显越宽,高度越小;结构体中第二个参数表示最大能有多高,比如我们写为100,那么即使文本高度计算出来是200, 这个方法也会返回100, 所以一般情况下我们把它写为MAXFLOAT, 表示能有多高返回多高
    if ([[[UIDevice currentDevice] systemVersion] floatValue] <= 7.0) {
        CGSize size = [str sizeWithFont:self.showLabel.font           constrainedToSize:CGSizeMake(self.showLabel.frame.size.width, MAXFLOAT)];
        // 计算出文本高度后,重新给label赋值
        CGRect frame = self.showLabel.frame;
        frame.size.height = size.height;
        self.showLabel.frame = frame;
    } else {
        /*
         // 计算text的高度,改变label的高,让label适应这些文字
         CGSize textSize = [text sizeWithFont:[UIFont systemFontOfSize:18.0] constrainedToSize:CGSizeMake(self.targetLabel.frame.size.width, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
         // 第一个参数:字体
         // 第二个参数:constraintedSize
         // 第三个参数:换行模式
         */
        // after iOS7: boundingRectWithSize:options:attributes:context:
        CGSize textSize = [str boundingRectWithSize:CGSizeMake(self.showLabel.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:17.0]} context:nil].size;
        // 选项options:
        /**
         * NSStringDrawingUsesLineFragmentOrigin:
         绘制文本时使用 line fragement origin 而不是 baseline origin
         NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading | NSStringDrawingTruncatesLastVisibleLine
         * NSStringDrawingUsesFontLeading:
         计算行高时使用行距。(译者注:字体大小+行间距=行距)
         * NSStringDrawingTruncatesLastVisibleLine:
         如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。
         * NSStringDrawingUsesDeviceMetrics:
         计算布局时使用图元字形(而不是印刷字体)。
         */
        CGRect frame = self.showLabel.frame;
        frame.size.height = textSize.height;
        self.showLabel.frame = frame;
    }
    self.showLabel.text = @"xxxxxxx";//你的文本内容
【拓】同理可以设计一个可变高度(根据内容自适应高度)的 UITableViewCell

1) 创建并添加一个 UILabel 作为单元格 cell 的子视图;
2) 在 UITableView 的委托方法: (CGFloat)tableView:(UITableView*)tableViewheightForRowAtIndexPath: (NSIndexPath *) indexPath 中计算高度
3) 在 UITableView 的委托方法: (UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexP ath: (NSIndexPath *) indexPath 中计算 UILabel 的框大小。

转载于:https://www.cnblogs.com/vfeng/p/4945704.html

设置UILabel可变高度(根据文本内容自动适应高度)相关推荐

  1. Jquery实现 TextArea 文本框根据输入内容自动适应高度

    原文 Jquery实现 TextArea 文本框根据输入内容自动适应高度 在玩微博的时候我们可能会注意到一个细节就是不管是新浪微博还是腾讯微博在转发和评论的时候给你的默认文本框的高度都不会很高,这可能 ...

  2. android 文字选中朗读,Android开发之文本内容自动朗读功能实现方法

    本文实例讲述了Android开发之文本内容自动朗读功能实现方法.分享给大家供大家参考,具体如下: Android提供了自动朗读支持.自动朗读支持可以对指定文本内容进行朗读,从而发生声音:不仅如此,An ...

  3. android的发音功能实现,Android开发之文本内容自动朗读功能实现方法

    本文实例讲述了Android开发之文本内容自动朗读功能实现方法.分享给大家供大家参考,具体如下: Android提供了自动朗读支持.自动朗读支持可以对指定文本内容进行朗读,从而发生声音:不仅如此,An ...

  4. [css] 如何设置背景图片不随着文本内容的滚动而滚动?

    [css] 如何设置背景图片不随着文本内容的滚动而滚动? 直接对div设置background:url不就好了嘛?上代码.<!DOCTYPE html> <html lang=&qu ...

  5. Windows利用cmd循环文件文本内容自动创建对应文件

    批处理命令 @echo off echo ==============option start================= md temp cd temp echo temp dir creat ...

  6. js设置和获取html和文本,JS---DOM---设置和获取---标签内容和文本内容

    设置和获取---标签内容和文本内容 总结---设置: 使用innerText主要是设置文本的, 设置标签内容, 是没有标签的效果的 innerHTML是可以设置文本内容 innerHTML主要的作用是 ...

  7. php设置文本框高度,怎样让textarea文本域宽度和高度width及height自动适应

    这次给大家带来怎样让textarea文本域宽度和高度width及height自动适应,让textarea文本域宽度和高度width及height自动适应的注意事项有哪些,下面就是实战案例,一起来看一下 ...

  8. uilabel 自行撑开高度_UILabel文本高度计算的那些事儿

    1. 计算文本在一行高度内的宽度 // 段落样式 NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] ...

  9. iOS-UILabel多行显示文本内容、根据文本长短自动计算文本框高度

    iAronTalk Blog opens. The clean and elegantlife style deduces the deep thought of life. -=-=-=-=-=-= ...

最新文章

  1. 国产AI芯片加速,鲲云携手浪潮推出数据流AI服务器
  2. matlab与acess连接问题
  3. 如何在软件中实现多camera模组的兼容
  4. 面状县级行政区划转地级行政区划,并关联属性字段
  5. memcache mysql 同步_memcache与mysql数据库同步
  6. wxwidget编译安装_wxWidgets的安装编译、相关配置、问题分析处理
  7. apt ubuntu 指定ipv4_怎么在ubuntu安装python
  8. Python求解进制问题(阿里巴巴2015笔试题)
  9. 国产GPGPU如何赶超国外?这3条路最有希望
  10. 为什么电脑屏幕会横过来_笔记本电脑屏幕横过来了怎么办?笔记本电脑屏幕倒过来了恢复方法...
  11. 面试那些事儿- UI设计面试常见问题
  12. 经济应用文写作【11】
  13. 立创开源 51编程炫酷心形流水灯
  14. SDNU-ACM第一次月赛地大武汉选拔赛
  15. 通俗地、有效地学习Linux驱动应用(只要没更完有空就更)
  16. 云南省2021年计算机二级,云南省2021年上半年计算机报考简章
  17. 程序员们,千万不要接私活!
  18. 【半年总结】——2015.08
  19. DCIC-赛题二赛后总结
  20. Liunx系统编程(五)网络编程

热门文章

  1. bootstraptable获得所有行_2020广汽本田安全中国行·首届道路安全创新大赛成功举办...
  2. 【caffe-Windows】caffe+VS2013+Windows+GPU配置+cifar使用
  3. Sublime配置与各种插件
  4. 【Nginx】 Nginx实现端口转发
  5. bzoj1128 Lam-lights
  6. centos 6.5 配置网络
  7. Celery框架简单实例
  8. ps cs3中显示任何像素不大于50%选择。选区边将不可见是什么意思
  9. 一个较完整的关键字过滤解决方案(上)
  10. 关于各种JOIN连接的解释说明【原创】