博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文本占用的高度和范围
阅读量:7169 次
发布时间:2019-06-29

本文共 1246 字,大约阅读时间需要 4 分钟。

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 | NSStringDrawingTruncatesLastVisibleLine                                          attributes:@{
NSFontAttributeName : [UIFont systemFontOfSize:14.0]} context:nil];复制代码

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

options 枚举#

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

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

你可能感兴趣的文章
量化交易系统开发:自动化(机器人或EA)交易的优点
查看>>
加拿大:监管机构呼吁加密行业参与证券法审查
查看>>
大数据技术综述
查看>>
MX4 Pro上实现一键锁屏
查看>>
ppt2010 滴管
查看>>
Learn Python The Hard Way(21)
查看>>
[读书笔记]Begining PHP5 and MySQL5 From Novoice to Professional
查看>>
OSChina 周五乱弹 ——做宇宙最低调的程序员.
查看>>
Linux下Tomcat向MySQL插入数据中文乱码解决办法
查看>>
致梦中的花
查看>>
说说new Integer和Integer.valueOf
查看>>
Zabbix server is not running:zabbix access denied
查看>>
我的友情链接
查看>>
linux下的软硬链接
查看>>
【JAVA的 IO流之FileInputStream和FileOutputStream】
查看>>
远程连接mysql 授权方法详解
查看>>
FreeBSD网络配置
查看>>
@synthesize window=_window; 的理解
查看>>
Greenlet理解要点
查看>>
罗森伯格应邀主讲CDCC百家大讲堂38期
查看>>