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 "在這裏輸入圖片標題")
相關文章
相關標籤/搜索