UIlabel 的自适应文字

[为什么要自适应高度 ?
简单的说, 像微信的聊天框, 气泡是不知道每次输入的内容的, 如此一来, 需要Label适应文字的的高度, 以达到灵活的目的。

接下来, 我们来实现这个过程
实现的关键方法介绍 :
NSString下面有一个方法, 可以通过NSString类型的文本计算出文字的范围

- boundingRectWithSize:options:attributes:context:
此处有四个参数 :
size
限制最大宽高, 虽然是自适应, 但是需要限制最大的宽度和高度.
options
一个枚举, 绘制自定义方式字符串的选项(简而言之, 通常情况下, 选3选项就够用了, 如果效果不满意, 再试试其他的选项吧 ) : NSStringDrawingOptions

enum { 
NSStringDrawingTruncatesLastVisibleLine = 1 << 5, 
NSStringDrawingUsesLineFragmentOrigin = 1 << 0, 
NSStringDrawingUsesFontLeading = 1 << 1, 
NSStringDrawingUsesDeviceMetrics = 1 << 3,
};typedef NSInteger NSStringDrawingOptions;

NSStringDrawingTruncatesLastVisibleLine : 如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号 . 如果三选项没有选择, 忽略此选项.

NSStringDrawingUsesLineFragmentOrigin : 整个文本将以每行组成的矩形为单位计算整个文本的尺寸.

NSStringDrawingUsesFontLeading : 以字体间的行距(leading,行距:从一行文字的底部到另一行文字底部的间距。)来计算高度。
NSStringDrawingUsesDeviceMetrics : 计算布局时使用图像符号边界, 而不是排版的边界 .
attributes
应用于字符串的文本属性.](http://)

context
NSStringDrawingContext
控制如何调整字间距和缩放。对象包含的信息将用于文本绘制。该参数可为 nil

返回值
返回一个矩形, 这个矩形为文字所占的矩形 .
实现过程

Paste_Image.png
![输入图片说明](https://static.oschina.net/uploads/img/201602/15170313_01kN.png "在这里输入图片标题")

转载于:https://my.oschina.net/u/2559341/blog/615200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值