NSString *string = @"现在想来,我们这波第一批老去的90后还是挺幸运的。在我们最好的年龄遇到了最好的华语乐坛(周杰伦巅峰 林俊杰 SHE  潘玮柏 蔡依林…),遇到了巅峰的星爷,遇到了最好的西科东艾北卡南麦,动画城陪我们成长,周杰伦陪我们成熟,我们看着星爷老去,见证科比退役,或许我们不是最好的一代,但一定是最精彩的一代。";
复制代码

1.sizeWithAttributes计算宽、高 size#

CGSize size_0 = [string sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:17]}];
复制代码

这种方式计算的宽度会根据字符串的长度无限的增加

2、boundingRectWithSize计算宽、高的 rect#

CGRect size_1 = [string boundingRectWithSize:CGSizeMake(320, MAXFLOAT)options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLineattributes:@{NSFontAttributeName : [UIFont systemFontOfSize:14.0]}context:nil];
复制代码

这种方式的计算的宽度在达到预设的宽的时候会自动换行计算高度

options 枚举#

NSStringDrawingUsesLineFragmentOrigin   //整个文本将以每行组成的矩形为单位计算整个文本的尺寸
NSStringDrawingUsesFontLeading      //使用字体的行间距来计算文本占用的范围,即每一行的底部到下一行的底部的距离计算
NSStringDrawingUsesDeviceMetrics        //将文字以图像符号计算文本占用范围,而不是以字符计算。也即是以每一个字体所占用的空间来计算文本范围
NSStringDrawingTruncatesLastVisibleLine     //当文本不能适合的放进指定的边界之内,则自动在最后一行添加省略符号。如果NSStringDrawingUsesLineFragmentOrigin没有设置,则该选项不生效
复制代码

转载于:https://juejin.im/post/5a93c94f5188257a76634e77

文本占用的高度和范围相关推荐

  1. 文本区域的高度随着内容增加----插件

    (function($){$.fn.autoTextarea = function(options) {var defaults={maxHeight:null,//文本框是否自动撑高,默认:null ...

  2. 渲染富文本编辑器并设置富文本编辑器的高度

    目标:富文本编辑器 vue-quill-editor 的基本使用:vue-quill-editor - npm 一.渲染富文本编辑器 运行如下的命令,在项目中安装富文本编辑器: npm i vue-q ...

  3. python文本框随窗体变化_Javascript 文本框textarea高度随内容自适应增长收缩

    直接上代码: 方案一: 枫芸志 » 文本框textarea高度自适应增长/伸缩 晴枫制作 http://jb51.net [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行] 方案一在各浏 ...

  4. iOS 动态计算文本内容的高度

    关于ios 下动态计算文本内容的高度,经过查阅和网上搜素,现在看到的有以下几种方法: 1. //  获取字符串的大小  ios6 - (CGSize)getStringRect_:(NSString* ...

  5. Android中获取文本宽度和高度

    本文罗列Android中字体宽度和高度的相关概念,及测量方法 . 原文请参考Android_FontMetrics.Android字符串进阶之三:字体属性及测量(FontMetrics). Andro ...

  6. 获取svg内text文本元素的高度、宽度及坐标等信息

    之前有一篇文章介绍了如何获取svg元素的高度.宽度等信息,传送门:https://blog.csdn.net/lqlqlq007/article/details/81875996 但是svg内的tex ...

  7. Swift之UILabel +使用讲解+富文本+自适应高度

    导语:本文重点放在富文本设置和自适应高度.接下来会陆陆续续发布swift中UI控件的使用技巧和方法.世界在变化,不久后Swift替代OC已不是说说而已,你还在等什么??Let's go! ###一.U ...

  8. 用div模拟文本域实现高度自动撑开以及相关问题的解决方法

    前段时间项目里面用到了一个高度随着内容自动撑开的文本域效果,这一点传统的textarea标签是满足不了的,而我们要做的只是在div中加一个contenteditable="true" ...

  9. 【记录】用Javascript实现文本框textarea高度随内容自动适应增长收缩

    // 最小高度     var minRows = 5;     // 最大高度,超过则出现滚动条     var maxRows = 12;     function autoResize(){   ...

最新文章

  1. Attention is all your need 谷歌的超强特征提取网络——Transformer
  2. [搬运] iOS 7 侧滑返回手势使用和错误集
  3. OpenGL在frag着色器中模拟点光源
  4. 【NLP】全方位解读 | Facebook的搜索是怎么做的?
  5. 跨平台的 NodeJS 组件解决 .NetCore 不支持 System.Drawing图形功能的若干问题
  6. c盘users的用户名怎么改_怎么修改iPhone备份文件夹路径 iPhone C盘路径修改教程【详解】...
  7. iText操作Word工具类
  8. 《梦断代码》读后感03——为什么我们不能像造桥一样造软件
  9. 值得关注的开源软件推荐
  10. 拉里·佩奇(Larry Page)的伟大归来
  11. (Docker实战)在CentOS7上使用Docker;(超详细、附图、附代码)
  12. 用python决定吃什么_如何决定今天吃什么?
  13. Transformer,bert—t for transformers
  14. python十进制转换其他进制直到输入q结束,python二进制转换,python将十进制转为二进制,题目描述:输入一个整...
  15. python ccf题解 201412-3 集合竞价
  16. HTML登录注册页面简单实现
  17. python输入一个英文句子_Python给定一个句子倒序输出单词以及字母的方法
  18. 【Android】恢复出厂后静态壁纸加载流程
  19. 图书馆客流统计计数器的作用是什么?
  20. java计算机毕业设计vue图书档案管理系统源码+mysql数据库+系统+lw文档+部署

热门文章

  1. 图灵奖得主杨立昆:AI+时代,未来将会如何被改变
  2. 国拨经费约31.48亿!科技部发布科技创新2030 —“脑科学与类脑研究”重大项目2021年度项目申报指南
  3. 华为徐文伟:用数学和系统工程方法推进未来网络研究
  4. 三个可能会被计算机视觉技术改变的行业
  5. 她取代马斯克成特斯拉新董事长 究竟什么来头?
  6. Waymo正式向真正“无人车”迈进,申请DMV远程监控许可证
  7. 视频监控成AI芯片主战场,海康威视和大华股份占据半壁江山
  8. 日赚 5 亿的腾讯工资又涨了:员工上半年人均月薪 7.8 万
  9. 天才黑客 Flanker 疑因拒绝做黑客被拼多多强行辞退
  10. 程序员的“凡尔赛文学”大赏!