[为何要自适应高度 ? 简单的说, 像微信的聊天框, 气泡是不知道每次输入的内容的, 如此一来, 须要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 